| JAVADOC(1) | JDK Commands | JAVADOC(1) |
نام (NAME)
javadoc - ابزار تولید صفحات HTML مستندات API از فایلهای منبع جاوا
خلاصه دستور (SYNOPSIS)
javadoc [options] [packagenames] [sourcefiles] [@files]
- options
- گزینههای خط فرمان را مشخص میکند که با فاصله از هم جدا میشوند. بخشهای گزینههای استاندارد javadoc، گزینههای اضافی javadoc، گزینههای استاندارد برای داکلت استاندارد، و گزینههای اضافی برای داکلت استاندارد را ببینید.
- packagenames
- نام بستههایی را که میخواهید مستندسازی کنید مشخص میکند که با فاصله از هم جدا میشوند، برای مثال java.lang java.lang.reflect java.awt. اگر میخواهید زیربستهها را نیز مستندسازی کنید، از گزینه -subpackages برای مشخص کردن بستهها استفاده کنید.
- sourcefiles
- نام فایلهای منبع جاوا را که میخواهید مستندسازی کنید مشخص میکند که با فاصله از هم جدا شدهاند، برای مثال Class.java Object.java Button.java. بهطور پیشفرض، javadoc کلاسهای مشخصشده را در دایرکتوری جاری جستجو میکند. با این حال، میتوانید مسیر کامل فایل کلاس را مشخص کرده و از نویسههای عام (wildcard) استفاده کنید، برای مثال /home/src/java/awt/Graphics*.java. همچنین میتوانید مسیر را نسبت به دایرکتوری جاری مشخص کنید.
- @files
- نام فایلهایی را مشخص میکند که شامل فهرستی از گزینههای ابزار javadoc، نام بستهها و نام فایلهای منبع به هر ترتیبی هستند.
توضیحات (DESCRIPTION)
ابزار javadoc اعلانها و کامنتهای مستندسازی را در مجموعهای از فایلهای منبع جاوا تجزیه کرده و آنها را با استفاده از یک بخش پشتی (back-end) با قابلیت اتصال به نام داکلت (doclet) پردازش میکند.
داکلت استاندارد (standard doclet) موردی است که بهطور پیشفرض استفاده میشود و میتواند صفحات HTML متناظری تولید کند که کلاسهای عمومی و محافظتشده، کلاسهای تو در تو و کلاسهای به صورت ضمنی اعلانشده (اما نه کلاسهای داخلی ناشناس)، رابطها، سازندهها، متدها و فیلدها را توصیف میکنند. داکلت استاندارد محتوای کامنتهای مستندسازی را مطابق با JavaDoc Documentation Comment Specification for the Standard Doclet تفسیر میکند. تگهای سفارشی در کامنتهای مستندسازی به وسیله tagletها پشتیبانی میشوند.
میتوانید از ابزار javadoc و داکلت استاندارد برای تولید مستندات API یا مستندات پیادهسازی برای مجموعهای از فایلهای منبع استفاده کنید.
میتوانید ابزار javadoc را روی کل بستهها، فایلهای منبع منفرد، یا هر دو اجرا کنید. هنگام مستندسازی کل بستهها، میتوانید از گزینه -subpackages یا برای پیمایش بازگشتی یک دایرکتوری و زیردایرکتوریهای آن، یا برای ارسال فهرستی صریح از نامهای بسته استفاده کنید. هنگامی که فایلهای منبع منفرد را مستندسازی میکنید، فهرستی از نامهای فایل منبع جاوا را ارسال کنید.
کامنتهای مستندسازی (Documentation Comments)
ابزار javadoc از کامنت مستندسازی (در صورت وجود) که بلافاصله پیش از شروع اعلان قرار دارد استفاده میکند؛ چه اعلان یک یادداشت (annotation)، تغییردهنده (modifier) یا نام اعلانشده باشد. اگر چندین کامنت مستندسازی قبل از اعلان وجود داشته باشد، فقط آخرین کامنت (نزدیکترین به اعلان) استفاده خواهد شد. اگر هرگونه کامنت مستندسازی پس از شروع اعلان وجود داشته باشد، نادیده گرفته میشود. برای بررسی هرگونه کامنت مستندسازی اضافی یا نامناسب، کد منبع خود را با گزینه -Xlint در javac، یا به طور خاصتر، با -Xlint:dangling-doc-comments کامپایل کنید. درون یک فایل منبع، میتوانید با استفاده از @SuppressWarnings("dangling-doc-comments") بر روی یک اعلان دربرگیرنده مناسب، هشدارهای ایجادشده توسط این گزینهها را بیصدا کنید.
انطباق و سازگاری (Conformance)
داکلت استاندارد محتوای کامنتهای مستندسازی را برای انطباق اعتبارسنجی نمیکند و تلاشی برای تصحیح خطاهای موجود در کامنتهای مستندسازی انجام نمیدهد. به هر کسی که javadoc را اجرا میکند توصیه میشود از مشکلاتی که ممکن است هنگام تولید خروجی ناسازگار یا خروجی حاوی محتوای اجرایی مانند جاوااسکریپت رخ دهد آگاه باشد. داکلت استاندارد ویژگی DocLint را برای کمک به توسعهدهندگان در تشخیص مشکلات رایج در کامنتهای مستندسازی ارائه میدهد؛ اما همچنین توصیه میشود خروجی تولیدشده با ابزارهای مناسب اعتبارسنجی انطباق و سایر ابزارهای بررسی ارزیابی شود.
برای جزئیات بیشتر در مورد الزامات انطباق برای اسناد HTML5، بخش Conformance requirements for authors [https://html.spec.whatwg.org/multipage/introduction.html#conformance-requirements-for-authors] در مشخصات HTML5 را ببینید. برای جزئیات بیشتر در مورد مسائل امنیتی مرتبط با صفحات وب، صفحه پروژه امنیت برنامههای کاربردی وب باز (OWASP) [https://www.owasp.org] را ببینید.
گزینهها (OPTIONS)
دستور javadoc از گزینههای خط فرمان برای هر دو ابزار اصلی javadoc و داکلت انتخابشده فعلی پشتیبانی میکند. اگر داکلت دیگری مشخص نشده باشد، از داکلت استاندارد (standard doclet) استفاده میشود.
گزینههای به سبک GNU (یعنی آنهایی که با -- شروع میشوند) میتوانند به جای نویسههای فاصله، از علامت مساوی (=) برای جدا کردن نام گزینه از مقدار آن استفاده کنند.
گزینههای استاندارد javadoc
گزینههای اصلی javadoc زیر معادل گزینههای متناظر javac هستند. برای توضیحات دقیق استفاده از این گزینهها، بخش گزینههای استاندارد در javac را ببینید:
- --add-modules
- -bootclasspath
- --class-path، -classpath، یا -cp
- --disable-line-doc-comments
- --enable-preview
- -encoding
- -extdirs
- --limit-modules
- --module
- --module-path یا -p
- --module-source-path
- --release
- --source یا -source
- --source-path یا -sourcepath
- --system
- --upgrade-module-path
گزینههای زیر گزینههای اصلی javadoc هستند که معادل گزینه متناظری در javac نیستند:
- -breakiterator
- جمله اول توضیحات در یک کامنت مستندسازی را با استفاده از نمونهای از java.text.BreakIterator برای تشخیص پایان جملات محاسبه میکند. قواعد مورد استفاده به محلی (locale) جاری بستگی دارد: برای مثال، در زبان انگلیسی، پایان جمله پس از یک نقطه، علامت سوال، یا علامت تعجب همراه با یک فاصله زمانی که کلمه بعدی با یک حرف بزرگ شروع میشود رخ میدهد. (این حالت برای مدیریت اکثر اختصارات در نظر گرفته شده است، مانند "The serial no. is valid"، اما مواردی مانند "Mr. Smith" را پردازش نمیکند.)
- -doclet class
- خروجی را با استفاده از یک داکلت جایگزین تولید میکند. از نام کاملاً واجد شرایط (fully qualified) استفاده کنید. این داکلت محتوا را تعریف کرده و خروجی را قالببندی میکند. اگر گزینه -doclet استفاده نشود، ابزار javadoc از داکلت استاندارد برای تولید فرمت پیشفرض HTML استفاده میکند. این کلاس باید رابط jdk.javadoc.doclet.Doclet را پیادهسازی کند. مسیر این کلاس توسط گزینه -docletpath تعریف میشود.
- -docletpath path
- محل یافتن فایلهای کلاس داکلت (مشخصشده با گزینه -doclet) و هر فایل JAR وابسته به آن را مشخص میکند. اگر فایل کلاس شروع در یک فایل JAR باشد، این گزینه مسیر آن فایل JAR را مشخص میکند. میتوانید یک مسیر مطلق یا یک مسیر نسبی نسبت به دایرکتوری جاری مشخص کنید. اگر path شامل چندین مسیر یا فایل JAR باشد، باید با دونقطه (:) در لینوکس و macOS، و نقطهویرگول (;) در ویندوز از هم جدا شوند. زمانی که کلاس شروع doclet از قبل در مسیر جستجو باشد، این گزینه ضروری نیست.
- -exclude pkglist
- بهطور بدون قید و شرط، بستههای مشخصشده و زیربستههای آنها را از فهرستی که توسط -subpackages تشکیل شده است مستثنی میکند. این گزینه آن بستهها را حتی اگر توسط یک گزینه -subpackages قبلی یا بعدی گنجانده شده باشند، حذف میکند.
- •
- لینوکس و macOS:
-
javadoc -sourcepath /home/user/src -subpackages java -exclude java.net:java.lang
- •
- ویندوز:
-
javadoc -sourcepath \user\src -subpackages java -exclude java.net:java.lang
- --expand-requires (transitive|all)
- به ابزار javadoc دستور میدهد تا مجموعه ماژولهایی را که باید مستندسازی شوند گسترش دهد. بهطور پیشفرض، فقط ماژولهایی که صریحاً در خط فرمان داده شدهاند مستندسازی میشوند. از مقادیر زیر پشتیبانی میکند:
- transitive: علاوه بر این، تمام وابستگیهای انتقالی (transitive) مورد نیاز آن ماژولها را نیز شامل میشود.
- all: تمام وابستگیها را شامل میشود.
- --help، -help، -h، یا -?
- خلاصهای از گزینههای استاندارد را چاپ میکند.
- --help-extra یا -X
- خلاصهای از مجموعه گزینههای اضافی را چاپ میکند.
- -Jflag
- مقدار flag را مستقیماً به محیط زمان اجرای جاوا (JRE) که ابزار javadoc را اجرا میکند ارسال میکند. برای مثال، اگر باید اطمینان حاصل کنید که سیستم ۳۲ مگابایت حافظه برای پردازش مستندات تولیدشده کنار میگذارد، گزینه -Xmx را به این صورت فراخوانی میکنید: javadoc -J-Xmx32m -J-Xms32m com.mypackage. توجه داشته باشید که -Xms اختیاری است زیرا فقط اندازه حافظه اولیه را تنظیم میکند، که زمانی مفید است که حداقل مقدار حافظه مورد نیاز را میدانید.
-
javadoc -J-version java version "17" 2021-09-14 LTS Java(TM) SE Runtime Environment (build 17+35-LTS-2724) Java HotSpot(TM) 64-Bit Server VM (build 17+35-LTS-2724, mixed mode, sharing)
- -locale name
- محلی (locale) را که ابزار javadoc هنگام تولید مستندات استفاده میکند مشخص میسازد. آرگومان نام محلی است، همانطور که در مستندات java.util.Locale شرح داده شده است، مانند en_US (انگلیسی، ایالات متحده) یا en_US_WIN (گونه ویندوز).
- -package
- فقط کلاسها و اعضای بسته، محافظتشده (protected) و عمومی (public) را نمایش میدهد.
- -private
- همه کلاسها و اعضا را نمایش میدهد.
- -protected
- فقط کلاسها و اعضای محافظتشده و عمومی را نمایش میدهد. این حالت پیشفرض است.
- -public
- فقط کلاسها و اعضای عمومی را نمایش میدهد.
- -quiet
- پیامها را خاموش میکند تا فقط هشدارها و خطاها ظاهر شوند تا مشاهده آنها آسانتر شود. همچنین رشته version را سرکوب میکند.
- --show-members value
- مشخص میکند کدام اعضا (فیلدها، متدها یا سازندهها) مستندسازی شوند، که در آن value میتواند هر یک از موارد زیر باشد:
- public --- فقط اعضای عمومی را نمایش میدهد
- protected --- اعضای عمومی و محافظتشده را نمایش میدهد؛ این حالت پیشفرض است
- package --- اعضای عمومی، محافظتشده و بسته را نمایش میدهد
- private --- تمام اعضا را نمایش میدهد
- --show-module-contents value
- سطح جزئیات مستندسازی اعلانهای ماژول را مشخص میکند، که در آن value میتواند api یا all باشد.
- --show-packages value
- مشخص میکند کدام بستههای ماژول مستندسازی شوند، که در آن value میتواند بستههای صادرشده (exported) یا تمام بستهها (all) باشد.
- --show-types value
- مشخص میکند کدام نوعها (کلاسها، رابطها و غیره) مستندسازی شوند، که در آن value میتواند هر یک از موارد زیر باشد:
- public --- فقط نوعهای عمومی را نمایش میدهد
- protected --- نوعهای عمومی و محافظتشده را نمایش میدهد؛ این حالت پیشفرض است
- package --- نوعهای عمومی، محافظتشده و بسته را نمایش میدهد
- private --- تمام نوعها را نمایش میدهد
- -subpackages subpkglist
- مستندات را از فایلهای منبع در بستههای مشخصشده و بهطور بازگشتی در زیربستههای آنها تولید میکند. این گزینه هنگام افزودن زیربستههای جدید به کد منبع مفید است زیرا آنها بهطور خودکار گنجانده میشوند. هر آرگومان بسته هر زیربسته سطح بالا (مانند java) یا بسته کاملاً واجد شرایط (مانند javax.swing) است که نیازی به داشتن فایلهای منبع ندارد. آرگومانها در تمام سیستمهای عامل با دونقطه از هم جدا میشوند. استفاده از نویسههای عام (wildcard) مجاز نیست. از -sourcepath برای مشخص کردن محل یافتن بستهها استفاده کنید. این گزینه فایلهای منبعی را که در درخت منبع هستند اما به بستهها تعلق ندارند پردازش نمیکند.
- •
- لینوکس و macOS:
-
javadoc -d docs -sourcepath /home/user/src -subpackages java:javax.swing
- •
- ویندوز:
-
javadoc -d docs -sourcepath \user\src -subpackages java:javax.swing
- -verbose
- پیامهای با جزئیات بیشتر را در حین اجرای ابزار javadoc ارائه میدهد. بدون گزینه -verbose، پیامها برای بارگیری فایلهای منبع، تولید مستندات (یک پیام به ازای هر فایل منبع) و مرتبسازی ظاهر میشوند. گزینه -verbose باعث چاپ پیامهای اضافی میشود که تعداد میلیثانیهها را برای تجزیه هر فایل منبع جاوا مشخص میکند.
- --version
- اطلاعات نسخه را چاپ میکند.
- -Werror
- در صورت بروز هرگونه هشدار، یک خطا گزارش میدهد.
توجه داشته باشید که اگر یک فایل منبع جاوا شامل یک کلاس به صورت ضمنی اعلانشده باشد، آن کلاس و اعضای عمومی، محافظتشده و بسته آن بدون در نظر گرفتن گزینههایی مانند --show-types، --show-members، -private، -protected، -package و -public مستندسازی خواهند شد. اگر --show-members با مقدار private مشخص شود یا اگر -private استفاده شود، تمام اعضای خصوصی یک کلاس به صورت ضمنی اعلانشده نیز مستندسازی خواهند شد.
گزینههای اضافی javadoc
توجه: گزینههای اضافی برای javadoc ممکن است بدون اطلاع قبلی تغییر کنند.
گزینههای اضافی javadoc زیر معادل گزینههای متناظر javac هستند. برای توضیحات دقیق استفاده از این گزینهها، بخش گزینههای اضافی در javac را ببینید:
- --add-exports
- --add-reads
- --patch-module
- -Xmaxerrs
- -Xmaxwarns
گزینههای استاندارد برای داکلت استاندارد (Standard Doclet)
گزینههای زیر توسط داکلت استاندارد ارائه شدهاند.
- --add-script file
- فایل file را به عنوان یک فایل جاوااسکریپت اضافی به مستندات تولیدشده اضافه میکند. این گزینه میتواند یک یا چند بار برای تعیین فایلهای اسکریپت اضافی استفاده شود.
-
javadoc --add-script extra.js -d docs-out mypackage
- --add-stylesheet file
- فایل file را به عنوان یک شیوهنامه (stylesheet) اضافی به مستندات تولیدشده اضافه میکند. این گزینه میتواند یک یا چند بار برای تعیین فایلهای شیوهنامه اضافی استفاده شود.
-
javadoc --add-stylesheet new_stylesheet_1.css --add-stylesheet new_stylesheet_2.css -d docs-out mypackage
- --allow-script-in-comments
- اجازه استفاده از جاوااسکریپت در کامنتهای مستندسازی و در گزینههایی که مقدار آنها html-code است.
- متن هر تگ author را در مستندات تولیدشده شامل میکند.
- -bottom html-code
- متنی را که باید در پایین هر صفحه تولیدشده قرار گیرد مشخص میکند. متن میتواند حاوی تگهای HTML و فاصله باشد، اما در این صورت باید در علامت نقلقول قرار گیرد. در هر تگ HTML از موجودیتهای کاراکتر داخلی برای علامتهای نقلقول استفاده کنید.
- -charset name
- مجموعه نویسه (character set) HTML را برای این سند مشخص میکند. نام باید یک نام ترجیحی MIME باشد همانطور که در ثبت IANA، مجموعههای نویسه [http://www.iana.org/assignments/character-sets] مشخص شده است.
-
javadoc -charset "iso-8859-1" mypackage
این دستور خط زیر را در سربرگ هر صفحه تولیدشده درج میکند: -
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
تگ meta در استاندارد HTML (4197265 و 4137321)، نمایش سند HTML [http://www.w3.org/TR/REC-html40/charset.html#h-5.2.2] شرح داده شده است.
- -d directory
- دایرکتوری مقصدی را مشخص میکند که ابزار javadoc فایلهای HTML تولیدشده را در آن ذخیره میکند. اگر گزینه -d را حذف کنید، فایلها در دایرکتوری جاری ذخیره میشوند. مقدار directory میتواند مطلق یا نسبی نسبت به دایرکتوری جاری باشد. دایرکتوری مقصد هنگام اجرای ابزار javadoc بهطور خودکار ایجاد میشود.
- •
- لینوکس و macOS: برای مثال، دستور زیر مستندات را برای بسته com.mypackage تولید کرده و نتایج را در دایرکتوری /user/doc/ ذخیره میکند:
-
javadoc -d /user/doc/ com.mypackage
- •
- ویندوز: برای مثال، دستور زیر مستندات را برای بسته com.mypackage تولید کرده و نتایج را در دایرکتوری \user\doc\ ذخیره میکند:
-
javadoc -d \user\doc\ com.mypackage
- -docencoding name
- کدگذاری فایلهای HTML تولیدشده را مشخص میکند. نام باید یک نام ترجیحی MIME باشد همانطور که در ثبت IANA، مجموعههای نویسه [http://www.iana.org/assignments/character-sets] مشخص شده است.
برای مثال:
-
javadoc -docencoding "iso-8859-1" mypackage
- -docfilessubdirs
- کپی عمیق دایرکتوریهای doc-files را فعال میکند. زیردایرکتوریها و تمام محتویات بهطور بازگشتی در مقصد کپی میشوند. برای مثال، دایرکتوری doc-files/example/images و تمام محتویات آن کپی میشوند. از گزینه -excludedocfilessubdir برای مستثنی کردن زیردایرکتوریهای خاص استفاده کنید.
- -doctitle html-code
- عنوانی را برای قرار دادن در نزدیکی بالای فایل خلاصه نمای کلی (overview summary) مشخص میکند. متن مشخصشده در تگ title به عنوان یک سربرگ سطح اول وسطچین، مستقیماً زیر نوار ناوبری قرار میگیرد. تگ title میتواند حاوی تگهای HTML و فاصله باشد، اما در این صورت باید در علامت نقلقول قرار گیرد. علامتهای نقلقول داخلی باید گریز داده شوند (escaped). برای مثال:
-
javadoc -doctitle "<b>My Library</b><br>v1.0" com.mypackage
- -excludedocfilessubdir name1,name2...
- هنگام کپی بازگشتی زیردایرکتوریهای doc-files، هر زیردایرکتوری با نامهای دادهشده را مستثنی میکند. بخش -docfilessubdirs را ببینید. به دلایل تاریخی، : میتواند در هر کجای آرگومان به عنوان جداکننده به جای , استفاده شود.
- این گزینه دیگر پشتیبانی نمیشود و یک هشدار گزارش میدهد.
- -group name g1,g2...
- بستههای مشخصشده، یا ماژولها هنگام مستندسازی کد ماژولار را در صفحه نمای کلی (Overview) با هم گروهبندی میکند. به دلایل تاریخی، : میتواند در هر کجای آرگومان به جای , به عنوان جداکننده استفاده شود.
- -header html-code
- متن سربرگ را برای قرار دادن در بالای هر فایل خروجی مشخص میکند. سربرگ در سمت راست نوار ناوبری قرار میگیرد. مقدار header میتواند حاوی تگهای HTML و فاصله باشد، اما در این صورت باید در علامت نقلقول قرار گیرد. از نویسههای گریز برای علامتهای نقلقول داخلی در سربرگ استفاده کنید. برای مثال:
-
javadoc -header "<b>My Library</b><br>v1.0" com.mypackage
- -helpfile filename
- فایلی حاوی متنی را مشخص میکند که هنگام کلیک روی پیوند HELP در نوار ناوبری نمایش داده میشود. اگر این گزینه داده نشود، ابزار javadoc یک صفحه پیشفرض ایجاد میکند که مورد استفاده قرار میگیرد.
- -html5
- این گزینه بیاثر (no-op) است و صرفاً برای سازگاری با گذشته حفظ شده است.
- --javafx یا -javafx
- قابلیت JavaFX را فعال میکند. اگر کلاسهای کتابخانه JavaFX در مسیر ماژول شناسایی شوند، این گزینه بهطور پیشفرض فعال است.
- -keywords
- تگهای کلمه کلیدی <meta> در HTML را برای هر کلاس به فایل تولیدشده اضافه میکند. این تگها میتوانند به موتورهای جستجویی که به دنبال تگهای <meta> میگردند در یافتن صفحات کمک کنند. اکثر موتورهای جستجو که کل اینترنت را جستجو میکنند به تگهای <meta> نگاه نمیکنند، زیرا صفحات ممکن است از آنها سوءاستفاده کنند. موتورهای جستجوی ارائهشده توسط شرکتهایی که جستجوهای خود را به وبسایت خود محدود میکنند، میتوانند از بررسی تگهای <meta> بهرهمند شوند. تگهای <meta> شامل نام کاملاً واجد شرایط کلاس و نامهای غیر واجد شرایط فیلدها و متدها هستند. سازندهها گنجانده نمیشوند زیرا با نام کلاس یکسان هستند. برای مثال، کلاس String با این کلمات کلیدی شروع میشود:
-
<meta name="keywords" content="java.lang.String class"> <meta name="keywords" content="CASE_INSENSITIVE_ORDER"> <meta name="keywords" content="length()"> <meta name="keywords" content="charAt()">
- -link url
- پیوندهایی به مستندات موجودِ تولیدشده توسط javadoc از کلاسهای دارای ارجاع خارجی ایجاد میکند. آرگومان url نشانی وب مطلق یا نسبی دایرکتوری حاوی مستندات خارجی تولیدشده با javadoc است. میتوانید چندین گزینه -link را در یک اجرای ابزار javadoc مشخص کنید تا به چندین سند پیوند داده شود.
توجه: فایلهای package-list و element-list توسط ابزار javadoc هنگام تولید مستندات API ایجاد میشوند و نباید توسط کاربر تغییر داده شوند.
هنگامی که از ابزار javadoc برای مستندسازی بستهها استفاده میکنید، از فایل package-list برای تعیین بستههای اعلانشده در یک API استفاده میکند. هنگامی که اسناد API را برای ماژولها تولید میکنید، ابزار javadoc از فایل element-list برای تعیین ماژولها و بستههای اعلانشده در یک API استفاده میکند.
ابزار javadoc نامها را از فایل فهرست مناسب میخواند و سپس به بستهها یا ماژولها در آن نشانی وب پیوند میدهد.
هنگامی که ابزار javadoc اجرا میشود، مقدار url در پیوندهای <A HREF> ایجادشده کپی میشود. بنابراین، url باید نشانی وب دایرکتوری باشد و نه یک فایل.
میتوانید از پیوند مطلق برای url استفاده کنید تا اسناد شما بتوانند به سندی در هر وبسایتی پیوند داده شوند، یا میتوانید از پیوند نسبی برای پیوند دادن صرفاً به یک مکان نسبی استفاده کنید. اگر از پیوند نسبی استفاده میکنید، مقداری که ارسال میکنید باید مسیر نسبی از دایرکتوری مقصد (مشخصشده با گزینه -d) به دایرکتوری حاوی بستههای پیوندشده باشد. هنگامی که یک پیوند مطلق را مشخص میکنید، معمولاً از پیوند HTTP استفاده میکنید. با این حال، اگر میخواهید به یک فایلسیستم که فاقد وبسرور است پیوند دهید، میتوانید از پیوند فایل استفاده کنید. تنها زمانی از پیوند فایل استفاده کنید که هر کسی که میخواهد به مستندات تولیدشده دسترسی داشته باشد، همان فایلسیستم را به اشتراک بگذارد. در همه موارد و در تمام سیستمهای عامل، از اسلش به عنوان جداکننده استفاده کنید، چه URL مطلق باشد یا نسبی.
-
-link https://<host>/<directory>/<directory>/.../<name> -link http://<host>/<directory>/<directory>/.../<name> -link file://<host>/<directory>/<directory>/.../<name> -link <directory>/<directory>/.../<name>
- --link-modularity-mismatch (warn|info)
- مشخص میکند که آیا مستندات خارجی با ماژولار بودن نادرست (مانند مستندات غیر ماژولار برای یک کتابخانه ماژولار، یا حالت معکوس) باید به عنوان هشدار (warn) یا صرفاً یک پیام (info) گزارش شوند. رفتار پیشفرض گزارش یک هشدار است.
- -linkoffline url1 url2
- این گزینه گونهای از گزینه -link است. هر دوی آنها پیوندهایی به مستندات تولیدشده javadoc برای کلاسهای دارای ارجاع خارجی ایجاد میکنند. میتوانید چندین گزینه -linkoffline را در یک اجرای ابزار javadoc مشخص کنید.
- پیوند دادن به سندی در وب که ابزار javadoc نمیتواند از طریق اتصال وب به آن دسترسی داشته باشد.
- فایل package-list یا element-list سند خارجی یا قابل دسترسی نیست یا در مکان URL وجود ندارد، اما در مکان دیگری وجود دارد و میتواند توسط فایل package-list یا element-list (معمولاً محلی) مشخص شود.
توجه: فایلهای package-list و element-list توسط ابزار javadoc هنگام تولید مستندات API ایجاد میشوند و نباید توسط کاربر تغییر داده شوند.
اگر url1 فقط در شبکه جهانی وب قابل دسترسی باشد، گزینه -linkoffline این محدودیت را که ابزار javadoc برای تولید مستندات باید اتصال وب داشته باشد برطرف میکند.
کاربرد دیگر گزینه -linkoffline به عنوان یک راه حل موقت برای بهروزرسانی اسناد است. پس از اجرای ابزار javadoc روی مجموعه کاملی از بستهها یا ماژولها، میتوانید ابزار javadoc را مجدداً روی مجموعه کوچکتری از بستهها یا ماژولهای تغییریافته اجرا کنید، تا فایلهای بهروزرسانیشده بتوانند دوباره در مجموعه اصلی درج شوند.
برای مثال، گزینه -linkoffline دو آرگومان میگیرد. اولی برای رشتهای است که باید در پیوندهای <a href> تعبیه شود، و دومی به ابزار javadoc میگوید فایل package-list یا element-list را کجا پیدا کند.
مقدار url1 یا url2 نشانی وب مطلق یا نسبی دایرکتوری حاوی مستندات تولیدشده خارجی javadoc است که میخواهید به آن پیوند دهید. در صورت نسبی بودن، مقدار باید مسیر نسبی از دایرکتوری مقصد (مشخصشده با گزینه -d) به ریشه بستههای پیوندشده باشد. بخش url در گزینه -link را ببینید.
- --link-platform-properties url
- یک فایل ویژگیها (properties file) را مشخص میکند که برای پیکربندی پیوندها به مستندات پلتفرم استفاده میشود.
-
doclet.platform.docs.<version>=<url>
به عنوان مثال، یک فایل ویژگیها حاوی نشانیهای وب برای نسخههای ۱۵ تا ۱۷ ممکن است شامل خطوط زیر باشد: -
doclet.platform.docs.15=https://example.com/api/15 doclet.platform.docs.16=https://example.com/api/16 doclet.platform.docs.17=https://example.com/api/17
اگر فایل ویژگیها حاوی مدخلی برای یک نسخه خاص نباشد، هیچ پیوند پلتفرمی ایجاد نمیشود.
- -linksource
- یک نسخه HTML از هر فایل منبع (همراه با شماره خطوط) ایجاد کرده و پیوندهایی به آنها از مستندات استاندارد HTML اضافه میکند. پیوندها برای کلاسها، رابطها، سازندهها، متدها و فیلدهایی که اعلانهای آنها در یک فایل منبع است ایجاد میشوند. در غیر این صورت، پیوندها ایجاد نمیشوند، مانند سازندههای پیشفرض و کلاسهای تولیدشده.
هر پیوند روی نام شناسه در اعلان آن ظاهر میشود. برای مثال، پیوند به کد منبع کلاس Button روی کلمه Button خواهد بود:
-
public class Button extends Component implements Accessible
پیوند به کد منبع متد getLabel در کلاس Button روی کلمه getLabel قرار دارد: -
public String getLabel()
- --main-stylesheet file یا -stylesheetfile file
- مسیر یک فایل شیوهنامه جایگزین را مشخص میکند که شامل تعاریف سبکهای CSS مورد استفاده در مستندات تولیدشده است. این گزینه به شما امکان میدهد مقدار پیشفرض را لغو کنید. اگر این گزینه را مشخص نکنید، ابزار javadoc یک شیوهنامه پیشفرض ایجاد کرده و از آن استفاده میکند. نام فایل میتواند هر نامی باشد و به stylesheet.css محدود نمیشود. گزینه --main-stylesheet فرم ترجیحی است.
-
javadoc --main-stylesheet main_stylesheet.css pkg_foo
- -nocomment
- کل بدنه کامنت، از جمله توضیحات اصلی و همه تگها را سرکوب کرده و فقط اعلانها را تولید میکند. این گزینه به شما امکان میدهد از فایلهای منبعی که در ابتدا برای هدف دیگری در نظر گرفته شده بودند مجدداً استفاده کنید تا بتوانید در مراحل اولیه یک پروژه جدید، اسکلت مستندات HTML را تولید نمایید.
- -nodeprecated
- از تولید هرگونه API منسوخشده (deprecated) در مستندات جلوگیری میکند. این گزینه همان کاری را انجام میدهد که گزینه -nodeprecatedlist انجام میدهد، به علاوه در بقیه بخشهای مستندات نیز هیچ API منسوخشدهای تولید نمیکند. این گزینه هنگام نوشتن کد زمانی که نمیخواهید حواستان با کدهای منسوخشده پرت شود مفید است.
- -nodeprecatedlist
- از تولید فایلی که حاوی فهرست APIهای منسوخشده است (deprecated-list.html) و پیوند موجود در نوار ناوبری به آن صفحه جلوگیری میکند. ابزار javadoc به تولید APIهای منسوخشده در سرتاسر بقیه سند ادامه میدهد. این گزینه زمانی مفید است که کد منبع شما حاوی هیچ API منسوخشدهای نباشد و بخواهید نوار ناوبری تمیزتری داشته باشید.
- --no-fonts
- از گنجاندن فایلهای فونت در مستندات تولیدشده جلوگیری میکند. این گزینه در صورتی که مستندات از یک شیوهنامه سفارشی استفاده کند که فونتهای پیشفرض را به کار نمیبرد مفید است.
- -nohelp
- پیوند HELP را در نوار ناوبری بالای هر صفحه خروجی حذف میکند.
- -noindex
- نمایه (index) را از اسناد تولیدشده حذف میکند. نمایه بهطور پیشفرض تولید میشود.
- از تولید نوار ناوبری، سربرگ و پاورقی که معمولاً در بالا و پایین صفحات تولیدشده یافت میشوند، جلوگیری میکند. گزینه -nonavbar هیچ تأثیری بر گزینه -bottom ندارد. گزینه -nonavbar زمانی مفید است که فقط به محتوا علاقهمند هستید و نیازی به ناوبری ندارید، مانند زمانی که فایلها را صرفاً برای چاپ به PostScript یا PDF تبدیل میکنید.
- --no-platform-links
- از ایجاد پیوند به مستندات پلتفرم جلوگیری میکند. این پیوندها بهطور پیشفرض تولید میشوند.
- -noqualifier name1,name2...
- فهرست واجد شرایطکنندهها (qualifiers) را از خروجی حذف میکند. نام بسته از جاهایی که نام کلاس یا رابط ظاهر میشود حذف میشود. به دلایل تاریخی، : میتواند در هر کجای آرگومان به عنوان جداکننده به جای , استفاده شود.
مثال زیر واجد شرایطکنندههای بستههای java.lang و java.io را حذف میکند: -noqualifier java.lang:java.io.
مثال زیر واجد شرایطکنندههای بستههایی را که با زیربستههای java و com.sun شروع میشوند حذف میکند، اما javax را حذف نمیکند: -noqualifier java.*:com.sun.*.
در جایی که یک واجد شرایطکننده بسته به دلیل رفتار قبلی ظاهر میشود، نام میتواند به شکل مناسب کوتاه شود. این قاعده بدون در نظر گرفتن اینکه آیا از گزینه -noqualifier استفاده شده است یا خیر، اعمال میشود.
- -nosince
- بخشهای Since مرتبط با تگهای @since را از اسناد تولیدشده حذف میکند.
- -notimestamp
- برچسب زمانی را که در یک کامنت HTML در بالای هر صفحه مخفی شده است، سرکوب میکند. گزینه -notimestamp زمانی مفید است که میخواهید ابزار javadoc را روی دو پایگاه کد منبع اجرا کنید و تفاوتهای بین آنها را با diff بسنجید، زیرا از ایجاد تفاوت ناشی از برچسبهای زمانی جلوگیری میکند. برچسب زمانی شامل شماره انتشار ابزار javadoc است.
- -notree
- صفحات سلسلهمراتب کلاس و رابط را از اسناد تولیدشده حذف میکند. اینها صفحاتی هستند که با استفاده از دکمه Tree در نوار ناوبری به آنها میرسید. سلسلهمراتب بهطور پیشفرض تولید میشود.
- --override-methods (detail|summary)
- متدهای بازنویسیشده (overridden) را در بخشهای جزئیات یا خلاصه مستندسازی میکند. مقدار پیشفرض detail است.
- -overview filename
- مشخص میکند که ابزار javadoc باید متن مستندات نمای کلی را از فایل منبع مشخصشده توسط filename بازیابی کند و آن را در صفحه نمای کلی (overview-summary.html) قرار دهد. یک مسیر نسبی مشخصشده با نام فایل، نسبت به دایرکتوری کاری جاری است.
- لینوکس و macOS: برای مثال، اگر درخت منبع برای بسته java.lang به صورت src/classes/java/lang/ باشد، میتوانید فایل نمای کلی را در src/classes/overview.html قرار دهید.
- ویندوز: برای مثال، اگر درخت منبع برای بسته java.lang به صورت src\classes\java\lang\ باشد، میتوانید فایل نمای کلی را در src\classes\overview.html قرار دهید.
صفحه نمای کلی تنها زمانی ایجاد میشود که دو یا چند نام بسته را به ابزار javadoc ارسال کنید. عنوان صفحه نمای کلی توسط -doctitle تنظیم میشود.
- -serialwarn
- هشدارهای زمان کامپایل را برای تگهای مفقود @serial تولید میکند. بهطور پیشفرض، Javadoc هیچ هشدار سریالی تولید نمیکند. از این گزینه برای نمایش هشدارهای سریال استفاده کنید، که به مستندسازی صحیح فیلدهای سریالیشدنی پیشفرض و متدهای writeExternal کمک میکند.
- --since release(,release)*
- مستندات را برای APIهایی که در نسخههای انتشار مشخصشده اضافه یا تازه منسوخ شدهاند تولید میکند.
اگر صفحه "Deprecated API" تولید شود و عنصر since از حاشیهنویسی java.lang.Deprecated یک عنصر مستندشده با یک نسخه انتشار در آرگومانهای گزینه مطابقت داشته باشد، اطلاعات مربوط به نسخهای که عنصر در آن منسوخ شده است به صفحه "Deprecated API" اضافه میشود.
نسخههای انتشار با استفاده از مقایسه رشتهای حساس به حروف بزرگ و کوچک مقایسه میشوند.
- --since-label text
- متن text مورد استفاده در سربرگ صفحه "New API" را مشخص میکند. این ممکن است شامل اطلاعاتی درباره نسخههای پوشش داده شده در صفحه باشد، برای مثال "New API in release 2.0" یا "New API since release 1".
- --snippet-path snippetpathlist
- مسیرهای جستجو را برای یافتن فایلهای قطعات کد (snippets) خارجی مشخص میکند. مقدار snippetpathlist میتواند شامل چندین مسیر باشد که با جداکننده مسیر پلتفرم (; در ویندوز؛ : در سایر پلتفرمها) از هم جدا شدهاند. داکلت استاندارد ابتدا زیردایرکتوری snippet-files را در بسته حاوی قطعه کد جستجو میکند و سپس تمام دایرکتوریهای موجود در فهرست دادهشده را جستجو مینماید.
- -sourcetab tab-length
- تعداد فاصلههایی را که هر تب در منبع اشغال میکند مشخص میسازد.
- --spec-base-url url
- نشانی وب پایه را برای نشانیهای وب نسبی در تگهای @spec مشخص میکند، تا هنگام تولید پیوندها به هرگونه مشخصات خارجی استفاده شود. این مقدار میتواند یک URL مطلق یا یک URL نسبی باشد، که در این حالت نسبت به دایرکتوری پایه فایلهای خروجی تولیدشده ارزیابی میشود. مقدار پیشفرض معادل {@docRoot}/../specs است.
- -splitindex
- فایل نمایه را به چندین فایل به صورت الفبایی تقسیم میکند، یک فایل برای هر حرف، به علاوه یک فایل برای مدخلهای نمایهای که با نمادهای غیر الفبایی شروع میشوند.
- --syntax-highlight
- برجستهسازی نحو (syntax highlighting) را برای قطعات کد در تگهای {@snippet} و عناصر <pre><code> فعال میکند. برای snippetها، ویژگی lang برای تعیین زبان قطعه کد استفاده میشود، که برای snippetهای درونخطی بهطور پیشفرض "java" است و برای snippetهای خارجی از پسوند فایل به دست میآید. در تگهای HTML <pre><code>، ویژگی class میتواند برای تعیین زبان قطعه کد به کار رود، همانطور که در زیر نشان داده شده است:
-
<pre><code class="language-java">...</code></pre>
اگر هیچیک از این ویژگیها موجود نباشد، تشخیص خودکار زبان اعمال میشود. برای غیرفعال کردن برجستهسازی نحو برای یک قطعه کد، زبان را با استفاده از یکی از سازوکارهای شرحدادهشده در بالا روی "text" تنظیم کنید. زبانها و قالبهای پشتیبانیشده توسط این گزینه عبارتند از: Java، Properties، JSON، HTML و XML.
- -tag name:locations:header
- تگهای سفارشی تکآرگومانی را مشخص میکند. برای اینکه ابزار javadoc املای نام تگها را بررسی کند، مهم است که برای هر تگ سفارشی موجود در کد منبع یک گزینه -tag قرار دهید و تگهایی را که در اجرای فعلی خروجی داده نمیشوند (با X) غیرفعال کنید. دونقطه (:) همیشه جداکننده است. برای گنجاندن دونقطه در نام تگ، آن را با یک بکاسلش (\) اسکیپ کنید. گزینه -tag عنوان تگ، یعنی header را به صورت پررنگ (bold) در خروجی نمایش میدهد و در خط بعدی متن ناشی از تکآرگومان آن قرار میگیرد. مشابه هر تگ بلوکی، متن آرگومان میتواند حاوی تگهای درونخطی (inline) باشد که آنها نیز تفسیر میشوند. خروجی شبیه به تگهای تکآرگومانی استاندارد مانند تگهای @return و @author است. حذف مقدار header باعث میشود که name به عنوان عنوان در نظر گرفته شود. مقدار locations فهرستی از نویسهها است که انواع اعلانهایی را که تگ میتواند در آنها استفاده شود مشخص میکند. نویسههای زیر را میتوان به صورت حروف بزرگ یا کوچک استفاده کرد:
- A: تمام اعلانها
- C: سازندهها
- F: فیلدها
- M: متدها
- O: صفحه نمای کلی و سایر فایلهای مستندات در زیردایرکتوریهای doc-files
- P: بستهها
- S: ماژولها
- T: نوعها (کلاسها و رابطها)
- X: هیچکجا: تگ غیرفعال است و نادیده گرفته میشود
ترتیبی که تگها در خط فرمان داده میشوند به عنوان ترتیبی که تگها در خروجی تولیدشده ظاهر میشوند استفاده خواهد شد. میتوانید تگهای استاندارد را به ترتیبی که در خط فرمان داده شده است با استفاده از گزینه -tag بدون locations یا header شامل کنید.
- -taglet class
- نام کاملاً واجد شرایط تگلتی را که در تولید مستندات برای آن تگ استفاده میشود مشخص میکند. از نام کاملاً واجد شرایط برای مقدار class استفاده کنید. این تگلت همچنین تعداد آرگومانهای متنی را که تگ سفارشی دارد تعریف میکند. تگلت آن آرگومانها را میپذیرد، آنها را پردازش میکند و خروجی را تولید مینماید.
-
-taglet com.sun.tools.doclets.ToDoTaglet -tagletpath /home/taglets -tag return -tag param -tag todo -tag throws -tag see
به صورت متناوب، میتوانید از گزینه -taglet به جای گزینه -tag آن استفاده کنید، اما خواندن آن ممکن است دشوار باشد.
- -tagletpath tagletpathlist
- مسیرهای جستجو را برای یافتن فایلهای کلاس تگلت مشخص میکند. مقدار tagletpathlist میتواند شامل چندین مسیر با جدا کردن آنها با جداکننده مسیر پلتفرم باشد (; در ویندوز؛ : در سایر پلتفرمها). ابزار javadoc تمام زیردایرکتوریهای مسیرهای مشخصشده را جستجو میکند.
- -top html-code
- متنی را برای قرار دادن در بالای هر فایل خروجی مشخص میکند.
- -use
- صفحات استفاده (use) از کلاس و بسته را ایجاد میکند. شامل یک صفحه Use برای هر کلاس و بسته مستندشده است. این صفحه توصیف میکند چه بستهها، کلاسها، متدها، سازندهها و فیلدهایی از هر API کلاس یا بسته مشخصشده استفاده میکنند. برای کلاس مفروض C، مواردی که از کلاس C استفاده میکنند شامل زیرکلاسهای C، فیلدهای اعلانشده به عنوان C، متدهایی که C را برمیگردانند، و متدها و سازندههایی با پارامترهایی از نوع C هستند. برای مثال، میتوانید به صفحه Use برای نوع String نگاه کنید. از آنجا که متد getName در کلاس java.awt.Font نوع String را برمیگرداند، متد getName از String استفاده میکند و بنابراین متد getName در صفحه Use برای String ظاهر میشود. این گزینه فقط استفاده از API را مستند میکند، نه پیادهسازی را. هنگامی که یک متد از String در پیادهسازی خود استفاده میکند، اما یک رشته را به عنوان آرگومان نمیگیرد یا رشتهای را برنمیگرداند، این به عنوان استفاده از String در نظر گرفته نمیشود. برای دسترسی به صفحه تولیدشده Use، به کلاس یا بسته بروید و روی پیوند Use در نوار ناوبری کلیک کنید.
- -version
- متن نسخه را در اسناد تولیدشده شامل میکند. این متن بهطور پیشفرض حذف شده است. برای فهمیدن اینکه از چه نسخهای از ابزار javadoc استفاده میکنید، از گزینه -J-version استفاده نمایید.
- -windowtitle title
- عنوانی را برای قرار دادن در تگ HTML <title> مشخص میکند. متن مشخصشده در تگ title در عنوان پنجره و در هر بوکمارک مرورگری (مکانهای مورد علاقه) که شخصی برای این صفحه ایجاد میکند ظاهر میشود. این عنوان نباید حاوی هیچ تگ HTML باشد زیرا مرورگر آنها را به درستی تفسیر نمیکند. برای هر علامت نقلقول داخلی در تگ title از نویسههای گریز استفاده کنید. اگر گزینه -windowtitle حذف شود، ابزار javadoc از مقدار گزینه -doctitle برای گزینه -windowtitle استفاده میکند. برای مثال:
-
javadoc -windowtitle "My Library" com.mypackage
گزینههای اضافی برای داکلت استاندارد (Standard Doclet)
موارد زیر گزینههای اضافی ارائهشده توسط داکلت استاندارد هستند و بدون اطلاع قبلی ممکن است تغییر کنند. گزینههای اضافی کمتر مورد استفاده قرار میگیرند یا پیشرفته تلقی میشوند.
- --date date-and-time
- مقداری را برای برچسب زمانی صفحات تولیدشده، در قالب ISO 8601 [https://www.iso.org/iso-8601-date-and-time-format.html] مشخص میکند. مقدار مشخصشده باید در بازه ۱۰ سال از تاریخ و زمان فعلی باشد. مشخص کردن همزمان هر دو گزینه -notimestamp و --date یک خطا است. استفاده از یک مقدار خاص به این معنی است که مستندات تولیدشده میتوانند بخشی از یک ساخت تکرارپذیر (reproducible build) [https://reproducible-builds.org] باشند. اگر این گزینه داده نشود، مقدار پیشفرض تاریخ و زمان فعلی است. برای مثال:
-
javadoc --date 2022-02-01T17:41:59-08:00 mypackage
- --legal-notices (default|none|directory)
- مکانی را مشخص میکند که فایلهای حقوقی و قانونی از آنجا به مستندات تولیدشده کپی شوند. اگر گزینه مشخص نشده باشد یا با مقدار default استفاده شود، فایلها از مکان پیشفرض کپی میشوند. اگر آرگومان با مقدار none استفاده شود، هیچ فایلی کپی نمیشود. هر آرگومان دیگر به عنوان دایرکتوری در نظر گرفته میشود که فایلهای حقوقی باید از آن کپی شوند.
- --no-frames
- این گزینه دیگر پشتیبانی نمیشود و یک هشدار گزارش میدهد.
- -Xdoclint
- بررسیهای توصیهشده را برای مشکلات موجود در کامنتهای مستندسازی فعال میکند.
- -Xdoclint:flag,flag,...
- بررسیهای خاص را برای انواع مختلف مشکلات در کامنتهای مستندسازی فعال یا غیرفعال میکند.
-
javadoc -Xdoclint:html -Xdoclint:syntax -Xdoclint:accessibility MyFile.java javadoc -Xdoclint:html,syntax,accessibility MyFile.java
مثالهای زیر نحوه تغییر مواردی را که DocLint گزارش میدهد نشان میدهند:
- -Xdoclint:none --- تمام بررسیها را غیرفعال میکند
- -Xdoclint:group --- بررسیهای group را فعال میکند
- -Xdoclint:all --- تمام گروههای بررسی را فعال میکند
- -Xdoclint:all,-group --- تمام بررسیها به جز بررسیهای group را فعال میکند برای جزئیات بیشتر، بخش DocLint را ببینید.
- -Xdoclint/package:[-]packages
- بررسیها را در بستههای خاص فعال یا غیرفعال میکند. مقدار packages فهرستی از مشخصکنندههای بسته است که با کاما از هم جدا شدهاند. یک مشخصکننده بسته یا یک نام واجد شرایط از یک بسته است یا یک پیشوند نام بسته که به دنبال آن * میآید، که به تمام زیربستههای بسته دادهشده گسترش مییابد. پیشوند مشخصکننده بسته را با - قرار دهید تا بررسیها برای بستههای مشخصشده غیرفعال شوند.
- -Xdocrootparent url
- تمام موارد @docRoot را که با /.. در کامنتهای مستندسازی دنبال میشوند با url جایگزین میکند.
داکلینت (DOCLINT)
ابزار DocLint قابلیت بررسی مشکلات احتمالی در کامنتهای مستندسازی را فراهم میکند. مشکلات ممکن است بسته به شدت آنها به صورت هشدار یا خطا گزارش شوند. برای مثال، کامنت گمشده ممکن است سبک بدی باشد که مستحق هشدار است، اما پیوند به یک اعلان ناشناخته جاوا جدیتر است و سزاوار خطا است. مشکلات در گروهها سازماندهی شدهاند، و گزینهها میتوانند برای فعال یا غیرفعال کردن پیامها در یک یا چند گروه استفاده شوند. در کد منبع، پیامهای یک یا چند گروه را میتوان با استفاده از حاشیهنویسیهای @SuppressWarnings بیصدا (suppress) کرد.
هنگامی که از javadoc فراخوانی میشود، بهطور پیشفرض DocLint تمام کامنتهایی را که در مستندات تولیدشده استفاده میشوند بررسی میکند. بنابراین برای تعیین اینکه کدام اعلانها و کامنتهای مستندسازی متناظر گنجانده خواهند شد، به سایر گزینههای خط فرمان متکی است. توجه: این ممکن است به این معنی باشد که حتی کامنتهای مربوط به برخی از اعضای خصوصی کلاسهای سریالیشدنی نیز در صورتی که اعضا نیاز به مستندسازی در صفحه Serialized Forms تولیدشده داشته باشند، بررسی خواهند شد.
در مقابل، هنگامی که DocLint از javac فراخوانی میشود، DocLint صرفاً به گزینههای مختلف -Xdoclint... متکی است تا تعیین کند کدام کامنتهای مستندسازی را بررسی کند.
ابزار DocLint تلاشی برای اصلاح ورودی نامعتبر نمیکند، فقط آن را گزارش میدهد.
توجه: ابزار DocLint کامل بودن این بررسیها را تضمین نمیکند. بهویژه، این یک بررسیکننده کامل انطباق HTML نیست. هدف صرفاً گزارش خطاهای رایج به روشی مناسب است.
گروهها (Groups)
بررسیهای انجامشده توسط DocLint در گروههایی سازماندهی شدهاند. هشدارها و خطاهای هر گروه را میتوان با گزینههای خط فرمان فعال یا غیرفعال کرد، یا با حاشیهنویسیهای @SuppressWarnings بیصدا نمود.
گروهها به شرح زیر هستند:
- •
- accessibility --- مشکلات مربوط به دسترسپذیری را بررسی میکند. برای مثال، صفت alt در عنصر <img> مشخص نشده باشد، یا صفتهای عنوان یا خلاصه در عنصر <table> مشخص نشده باشند.
اگر انتظار برود که یک ابزار اعتبارسنجی پاییندستی در فایلهای تولیدشده توسط javadoc خطایی گزارش دهد، مشکلات به عنوان خطا گزارش میشوند.
برای مرجع، راهنمای دسترسی به محتوای وب (WCAG) [https://www.w3.org/WAI/standards-guidelines/wcag] را ببینید.
- •
- html --- مشکلات رایج سطح بالای HTML را شناسایی میکند. برای مثال، قرار دادن عناصر بلوکی درون عناصر درونخطی، یا نبستن عناصری که به تگ پایانی نیاز دارند.
اگر انتظار برود که یک ابزار اعتبارسنجی پاییندستی در فایلهای تولیدشده توسط javadoc خطایی گزارش دهد، مشکلات به عنوان خطا گزارش میشوند.
برای مرجع، استاندارد زنده HTML [https://html.spec.whatwg.org/multipage] را ببینید.
- •
- missing --- کامنتها یا تگهای مستندسازی مفقود را بررسی میکند. برای مثال، کامنت مفقود در اعلان یک کلاس، یا تگ مفقود @param یا @return در کامنت برای اعلان یک متد.
مشکلات مربوط به موارد مفقود معمولاً به عنوان هشدار گزارش میشوند زیرا بعید است توسط ابزارهای اعتبارسنجی پاییندستی که ممکن است برای بررسی خروجی تولیدشده توسط javadoc استفاده شوند، به عنوان خطا گزارش شوند.
- •
- reference --- مشکلات مربوط به ارجاعات به عناصر Java API از تگهای کامنت مستندسازی را بررسی میکند. برای مثال، ارجاع در @see یا {@link ...} یافت نمیشود، یا نام نامناسبی برای @param یا @throws داده شده است.
مشکلات معمولاً به عنوان خطا گزارش میشوند زیرا اگرچه ممکن است این مشکل باعث ایجاد نقص در فایلهای تولیدشده نشود، اما نویسنده احتمالاً مرتکب اشتباهی شده است که منجر به مستندات نادرست یا غیرمنتظره خواهد شد.
- •
- syntax --- مشکلات نحوی سطح پایین در کامنتهای مستندسازی را بررسی میکند. برای مثال، براکتهای زاویهدار اسکیپنشده (< و >) و علامتهای آمپرسند (&) و تگهای نامعتبر کامنت مستندسازی.
مشکلات معمولاً به عنوان خطا گزارش میشوند زیرا ممکن است منجر به مستندات نادرست یا غیرمنتظره شوند.
بیصدا کردن پیامها (Suppressing Messages)
ابزار DocLint دو رشته را که ممکن است در آرگومانهای حاشیهنویسی @SuppressWarnings وجود داشته باشند بررسی کرده و تشخیص میدهد:
- doclint
- doclint:LIST
که در آن LIST یک فهرست جداشده با کاما از یک یا چند مورد از accessibility، html، missing، reference و syntax است.
نامهای موجود در LIST همان نامهای گروه هستند که توسط گزینه خط فرمان -Xdoclint برای javac و javadoc پشتیبانی میشوند. (این همان قراردادی است که توسط گزینه -Xlint در javac و نامهای متناظر پشتیبانیشده توسط @SuppressWarnings رعایت میشود).
نامهای موجود در LIST را میتوان به طور معادل در آرگومانهای جداگانه حاشیهنویسی مشخص کرد. برای مثال، موارد زیر معادل هستند:
- @SuppressWarnings("doclint:accessibility,missing")
- @SuppressWarnings("doclint:accessibility", "doclint:missing")
هنگامی که DocLint مشکلی را در یک کامنت مستندسازی تشخیص میدهد، وجود @SuppressWarnings را روی اعلان مربوطه و روی تمام اعلانهای محصورکننده از نظر لغوی بررسی میکند. اگر چنین حاشیهنویسی حاوی رشته ساده doclint یا فرم طولانیتر doclint:LIST (که در آن LIST حاوی نام گروه مربوط به آن مشکل است) یافت شود، مشکل نادیده گرفته خواهد شد.
توجه: مانند سایر کاربردهای @SuppressWarnings، استفاده از این حاشیهنویسی روی اعلان یک ماژول یا بسته فقط بر همان اعلان تأثیر میگذارد؛ بر محتویات ماژول یا بسته در سایر فایلهای منبع تأثیری ندارد.
تمام پیامهای مربوط به یک مشکل با وجود یک حاشیهنویسی مناسب @SuppressWarnings سرکوب میشوند: این شامل خطاها و همچنین هشدارها میشود.
توجه: فقط امکان بیصدا کردن (suppress) پیامها وجود دارد. اگر حاشیهنویسی @SuppressWarnings("doclint") روی یک اعلان سطح بالا داده شود، تمام پیامهای DocLint برای آن اعلان و هر اعلان محصور در آن سرکوب خواهند شد؛ فعالسازی مجدد انتخابی پیامها برای مشکلات موجود در اعلانهای محصور امکانپذیر نیست.
مقایسه با ابزارهای اعتبارسنجی پاییندستی
ابزار DocLint یک ابزار کاربردی ساختهشده در javac و javadoc است که محتوای کامنتهای مستندسازی را همانطور که در فایلهای منبع یافت میشوند بررسی میکند. در مقابل، ابزارهای اعتبارسنجی پاییندستی میتوانند برای اعتبارسنجی خروجی تولیدشده از آن کامنتهای مستندسازی توسط javadoc و داکلت استاندارد استفاده شوند.
اگرچه همپوشانیهایی در عملکرد وجود دارد، اما این دو مکانیسم متفاوت هستند و هر کدام نقاط قوت و ضعف خاص خود را دارند.
- ابزارهای اعتبارسنجی پاییندستی میتوانند نتیجه نهایی هرگونه مستندات تولیدشده را همانطور که توسط کاربر نهایی دیده میشود بررسی کنند. این شامل محتوای تمام منابع، از جمله کامنتهای مستندسازی، خود داکلت استاندارد، تگلتهای ارائهشده توسط کاربر، و محتوای ارائهشده از طریق گزینههای خط فرمان است. از آنجا که چنین ابزارهایی صفحات کامل HTML را تجزیه و تحلیل میکنند، میتوانند بررسیهای کاملتری نسبت به DocLint انجام دهند. با این حال، هنگامی که مشکلی در صفحات تولیدشده یافت میشود، ردیابی دقیق اینکه مشکل در کجای خط لوله ساخت باید برطرف شود، میتواند دشوارتر باشد.
- ابزار DocLint محتوای کامنتهای مستندسازی را در فایلهای منبع بررسی میکند. این امر شناسایی موقعیت دقیق هرگونه مشکل احتمالی را بسیار آسان میکند. ابزار DocLint همچنین میتواند برخی از خطاهای معنایی را در کامنتهای مستندسازی که ابزارهای پاییندستی قادر به تشخیص آنها نیستند شناسایی کند، مانند کامنتهای مفقود، استفاده از تگ @return در متدی که void برمیگرداند، یا تگ @param که یک پارامتر ناموجود را توصیف میکند. اما بر حسب ماهیت خود، DocLint نمیتواند مشکلاتی مانند پیوندهای مفقود، خطاها در تگلتهای سفارشی ارائهشده توسط کاربر، یا مشکلات درون خود داکلت استاندارد را گزارش کند. همچنین نمیتواند خطاها را در کامنتهای مستندسازی در مرزهای بین محتوای موجود در یک کامنت مستندسازی و محتوای تولیدشده توسط یک تگلت سفارشی به طور قابل اعتمادی شناسایی نماید.
| 2026 | JDK 26.0.2.1 |