JAVADOC(1) JDK Commands JAVADOC(1) نام (NAME) javadoc - ابزار تولید صفحات HTML مستندات API از فایلهای منبع جاوا (نسخه ۲۱) خلاصه دستور (SYNOPSIS) javadoc [گزینهها] [نامهای_بسته] [فایلهای_منبع] [@فایلها] گزینهها (options) گزینههای خط فرمان را مشخص میکند که با فاصله از هم جدا میشوند. بخشهای گزینههای استاندارد javadoc، گزینههای اضافی javadoc، گزینههای استاندارد برای داکلت استاندارد، و گزینههای اضافی برای داکلت استاندارد را ببینید. نامهای_بسته (packagenames) نام بستههایی را که میخواهید مستندسازی کنید مشخص میکند که با فاصله از هم جدا شدهاند، برای مثال java.lang java.lang.reflect java.awt. اگر میخواهید زیربستهها را نیز مستندسازی کنید، از گزینه -subpackages برای مشخص کردن بستهها استفاده کنید. بهطور پیشفرض، javadoc به دنبال بستههای مشخصشده در دایرکتوری جاری و زیردایرکتوریهای آن میگردد. از گزینه -sourcepath برای مشخص کردن فهرست دایرکتوریهای محل جستجوی بستهها استفاده کنید. فایلهای_منبع (sourcefiles) نام فایلهای منبع جاوا را که میخواهید مستندسازی کنید مشخص میکند که با فاصله از هم جدا شدهاند، برای مثال Class.java Object.java Button.java. بهطور پیشفرض، javadoc به دنبال کلاسهای مشخصشده در دایرکتوری جاری میگردد. با این حال، میتوانید مسیر کامل فایل کلاس را مشخص کرده و از نویسههای عام (wildcard) استفاده کنید، برای مثال /home/src/java/awt/Graphics*.java. همچنین میتوانید مسیر را نسبت به دایرکتوری جاری مشخص کنید. @فایلها (files) نام فایلهایی را مشخص میکند که شامل فهرستی از گزینههای ابزار javadoc، نام بستهها و نام فایلهای منبع به هر ترتیبی هستند. توضیحات (DESCRIPTION) ابزار javadoc اعلانها و کامنتهای مستندسازی را در مجموعهای از فایلهای منبع جاوا تجزیه کرده و صفحات HTML متناظری تولید میکند که (بهطور پیشفرض) کلاسهای عمومی و محافظتشده، کلاسهای تو در تو و بینام (اما نه کلاسهای داخلی ناشناس)، رابطها، سازندهها، متدها و فیلدها را توصیف میکنند. میتوانید از ابزار javadoc برای تولید مستندات API یا مستندات پیادهسازی برای مجموعهای از فایلهای منبع استفاده کنید. میتوانید ابزار javadoc را روی کل بستهها، فایلهای منبع منفرد، یا هر دو اجرا کنید. هنگام مستندسازی کل بستهها، میتوانید از گزینه -subpackages یا برای پیمایش بازگشتی یک دایرکتوری و زیردایرکتوریهای آن، یا برای ارسال فهرستی صریح از نامهای بسته استفاده کنید. هنگامی که فایلهای منبع منفرد را مستندسازی میکنید، فهرستی از نامهای فایل منبع جاوا را ارسال کنید. انطباق و سازگاری (Conformance) داکلت استاندارد (Standard Doclet) محتوای کامنتهای مستندسازی را برای انطباق اعتبارسنجی نمیکند و تلاشی برای تصحیح خطاهای موجود در کامنتهای مستندسازی انجام نمیدهد. به هر کسی که javadoc را اجرا میکند توصیه میشود از مشکلاتی که ممکن است هنگام تولید خروجی ناسازگار یا خروجی حاوی محتوای اجرایی مانند جاوااسکریپت رخ دهد آگاه باشد. داکلت استاندارد ویژگی DocLint را برای کمک به توسعهدهندگان در تشخیص مشکلات رایج در کامنتهای مستندسازی ارائه میدهد؛ اما همچنین توصیه میشود خروجی تولیدشده با ابزارهای مناسب اعتبارسنجی انطباق و سایر ابزارهای بررسی ارزیابی شود. برای جزئیات بیشتر در مورد الزامات انطباق برای اسناد HTML5، بخش Conformance requirements [https://www.w3.org/TR/html5/infrastructure.html#conformance- requirements] در مشخصات HTML5 را ببینید. برای جزئیات بیشتر در مورد مسائل امنیتی مرتبط با صفحات وب، صفحه پروژه امنیت برنامههای کاربردی وب باز (OWASP) [https://www.owasp.org] را ببینید. گزینهها (OPTIONS) دستور javadoc از گزینههای خط فرمان برای هر دو ابزار اصلی javadoc و داکلت انتخابشده فعلی پشتیبانی میکند. اگر داکلت دیگری مشخص نشده باشد، از داکلت استاندارد (Standard Doclet) استفاده میشود. گزینههای به سبک GNU (یعنی آنهایی که با -- شروع میشوند) میتوانند به جای نویسههای فاصله، از علامت مساوی (=) برای جدا کردن نام گزینه از مقدار آن استفاده کنند. گزینههای استاندارد javadoc گزینههای اصلی javadoc زیر معادل گزینههای متناظر javac هستند. برای توضیحات دقیق استفاده از این گزینهها، بخش گزینههای استاندارد در javac را ببینید: • --add-modules • -bootclasspath • --class-path، -classpath، یا -cp • --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 جمله اول را با BreakIterator محاسبه میکند. جمله اول در خلاصه بسته، کلاس، یا عضو و همچنین در نمایه الفبایی کپی میشود. کلاس BreakIterator برای تعیین پایان جمله برای همه زبانها به جز انگلیسی استفاده میشود. • الگوریتم پیشفرض پایان جمله انگلیسی --- در نقطه همراه با یک فاصله یا یک تگ بلوکی HTML مانند
متوقف میشود.
• الگوریتم پایان جمله Breakiterator --- در نقطه، علامت سوال، یا
علامت تعجب همراه با یک فاصله زمانی که کلمه بعدی با یک حرف بزرگ
شروع میشود متوقف میشود. این برای رسیدگی به اکثر اختصارات در
نظر گرفته شده است (مانند "The serial no. is valid"، اما "Mr.
Smith" را پردازش نمیکند). گزینه -breakiterator در تگهای HTML
یا جملاتی که با اعداد یا نمادها شروع میشوند متوقف نمیشود. این
الگوریتم در آخرین نقطه در ../filename متوقف میشود، حتی زمانی
که در یک تگ HTML جاسازی شده باشد.
-doclet کلاس
خروجی را با استفاده از یک داکلت جایگزین تولید میکند. از نام
کاملاً واجد شرایط (fully qualified) استفاده کنید. این داکلت
محتوا را تعریف کرده و خروجی را قالببندی میکند. اگر گزینه
-doclet استفاده نشود، ابزار javadoc از داکلت استاندارد برای
تولید فرمت پیشفرض HTML استفاده میکند. این کلاس باید شامل متد
start(Root) باشد. مسیر این کلاس شروع توسط گزینه -docletpath
تعریف میشود.
-docletpath مسیر
محل یافتن فایلهای کلاس داکلت (مشخصشده با گزینه -doclet) و هر
فایل JAR وابسته به آن را مشخص میکند. اگر فایل کلاس شروع در یک
فایل JAR باشد، این گزینه مسیر آن فایل JAR را مشخص میکند.
میتوانید یک مسیر مطلق یا یک مسیر نسبی نسبت به دایرکتوری جاری
مشخص کنید. اگر classpathlist شامل چندین مسیر یا فایل JAR باشد،
باید با دونقطه (:) در لینوکس و نقطهویرگول (;) در ویندوز از هم
جدا شوند. زمانی که کلاس شروع doclet از قبل در مسیر جستجو باشد،
این گزینه ضروری نیست.
-exclude فهرست_بستهها
بهطور بدون قید و شرط، بستههای مشخصشده و زیربستههای آنها را از
فهرستی که توسط -subpackages تشکیل شده است مستثنی میکند. این
گزینه آن بستهها را حتی اگر توسط یک گزینه -subpackages قبلی یا
بعدی گنجانده شده باشند، حذف میکند.
مثال زیر شامل java.io، java.util، و java.math (در میان دیگران)
میشود، اما بستههای ریشهدار در java.net و java.lang را مستثنی
میکند. توجه داشته باشید که این مثالها java.lang.ref را که یک
زیربسته از java.lang است، مستثنی میکنند.
• لینوکس و 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 مقدار
به ابزار javadoc دستور میدهد تا مجموعه ماژولهایی را که باید
مستندسازی شوند گسترش دهد. بهطور پیشفرض، فقط ماژولهایی که صریحاً
در خط فرمان داده شدهاند مستندسازی میشوند. از مقادیر زیر
پشتیبانی میکند:
• transitive: علاوه بر این، تمام وابستگیهای انتقالی (transitive)
مورد نیاز آن ماژولها را نیز شامل میشود.
• all: تمام وابستگیها را شامل میشود.
--help، -help، -h، یا -?
خلاصهای از گزینههای استاندارد را چاپ میکند.
--help-extra یا -X
خلاصهای از مجموعه گزینههای اضافی را چاپ میکند.
-Jفلگ فلگ را مستقیماً به محیط زمان اجرای جاوا (JRE) که ابزار javadoc را
اجرا میکند ارسال میکند. برای مثال، اگر باید اطمینان حاصل کنید
که سیستم ۳۲ مگابایت حافظه برای پردازش مستندات تولیدشده کنار
میگذارد، گزینه -Xmx را به این صورت فراخوانی میکنید: javadoc
-J-Xmx32m -J-Xms32m com.mypackage. توجه داشته باشید که -Xms
اختیاری است زیرا فقط اندازه حافظه اولیه را تنظیم میکند، که زمانی
مفید است که حداقل مقدار حافظه مورد نیاز را میدانید.
هیچ فاصلهای بین J و فلگ وجود ندارد.
از گزینه -version برای گزارش نسخه JRE مورد استفاده برای اجرای
ابزار javadoc استفاده کنید.
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 نام
محلی (locale) را که ابزار javadoc هنگام تولید مستندات استفاده
میکند مشخص میسازد. آرگومان نام محلی است، همانطور که در مستندات
java.util.Locale شرح داده شده است، مانند en_US (انگلیسی، ایالات
متحده) یا en_US_WIN (گونه ویندوز).
مشخص کردن یک محلی باعث میشود ابزار javadoc فایلهای منبع آن محلی
را برای پیامهایی مانند رشتههای نوار ناوبری، سربرگهای فهرستها و
جداول، محتوای فایل راهنما، کامنتهای موجود در فایل stylesheet.css
و غیره انتخاب کند. همچنین ترتیب مرتبسازی فهرستهای مرتبشده بر
اساس الفبا و جداکننده جمله را برای تعیین پایان جمله اول مشخص
میکند. گزینه -locale محلی متن کامنت مستندسازی مشخصشده در
فایلهای منبع کلاسهای مستندشده را تعیین نمیکند.
-package
فقط کلاسها و اعضای بسته، محافظتشده (protected) و عمومی (public)
را نمایش میدهد.
-private
همه کلاسها و اعضا را نمایش میدهد.
-protected
فقط کلاسها و اعضای محافظتشده و عمومی را نمایش میدهد. این حالت
پیشفرض است.
-public
فقط کلاسها و اعضای عمومی را نمایش میدهد.
-quiet پیامها را خاموش میکند تا فقط هشدارها و خطاها ظاهر شوند تا مشاهده
آنها آسانتر شود. همچنین رشته version را سرکوب میکند.
--show-members مقدار
مشخص میکند کدام اعضا (فیلدها یا متدها) مستندسازی شوند، که در آن
مقدار میتواند هر یک از موارد زیر باشد:
• public --- فقط اعضای عمومی را نمایش میدهد
• protected --- اعضای عمومی و محافظتشده را نمایش میدهد؛ این حالت
پیشفرض است
• package --- اعضای عمومی، محافظتشده و بسته را نمایش میدهد
• private --- تمام اعضا را نمایش میدهد
--show-module-contents مقدار
سطح جزئیات مستندسازی اعلانهای ماژول را مشخص میکند، که در آن
مقدار میتواند api یا all باشد.
--show-packages مقدار
مشخص میکند کدام بستههای ماژول مستندسازی شوند، که در آن مقدار
میتواند بستههای صادرشده (exported) یا تمام بستهها (all) باشد.
--show-types مقدار
مشخص میکند کدام نوعها (کلاسها، رابطها و غیره) مستندسازی شوند، که
در آن مقدار میتواند هر یک از موارد زیر باشد:
• public --- فقط نوعهای عمومی را نمایش میدهد
• protected --- نوعهای عمومی و محافظتشده را نمایش میدهد؛ این
حالت پیشفرض است
• package --- نوعهای عمومی، محافظتشده و بسته را نمایش میدهد
• private --- تمام نوعها را نمایش میدهد
-subpackages فهرست_زیربستهها
مستندات را از فایلهای منبع در بستههای مشخصشده و بهطور بازگشتی در
زیربستههای آنها تولید میکند. این گزینه هنگام افزودن زیربستههای
جدید به کد منبع مفید است زیرا آنها بهطور خودکار گنجانده میشوند.
هر آرگومان بسته هر زیربسته سطح بالا (مانند java) یا بسته کاملاً
واجد شرایط (مانند javax.swing) است که نیازی به داشتن فایلهای
منبع ندارد. آرگومانها در تمام سیستمهای عامل با دونقطه از هم جدا
میشوند. استفاده از نویسههای عام (wildcard) مجاز نیست. از
-sourcepath برای مشخص کردن محل یافتن بستهها استفاده کنید. این
گزینه فایلهای منبعی را که در درخت منبع هستند اما به بستهها تعلق
ندارند پردازش نمیکند.
برای مثال، دستورات زیر مستندات را برای بستههایی به نام java و
javax.swing و تمام زیربستههای آنها تولید میکنند.
• لینوکس و 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
در صورت بروز هرگونه هشدار، یک خطا گزارش میدهد.
گزینههای اضافی javadoc
توجه: گزینههای اضافی برای javadoc بدون اطلاع قبلی ممکن است تغییر کنند.
گزینههای اضافی javadoc زیر معادل گزینههای متناظر در javac هستند. برای
توضیحات دقیق استفاده از این گزینهها، بخش گزینههای اضافی در javac را
ببینید:
• --add-exports
• --add-reads
• --patch-module
• -Xmaxerrs
• -Xmaxwarns
گزینههای استاندارد برای داکلت استاندارد (Standard Doclet)
گزینههای زیر توسط داکلت استاندارد ارائه میشوند.
--add-script فایل
فایل را به عنوان یک فایل جاوااسکریپت اضافی به مستندات تولیدشده
اضافه میکند. این گزینه میتواند یک یا چند بار برای مشخص کردن
فایلهای اسکریپت اضافی استفاده شود.
مثال خط فرمان:
javadoc --add-script first_script.js --add-script
second_script.js pkg_foo
--add-stylesheet فایل
فایل را به عنوان یک فایل شیوهنامه (stylesheet) اضافی به مستندات
تولیدشده اضافه میکند. این گزینه میتواند یک یا چند بار برای مشخص
کردن شیوهنامههای اضافی گنجاندهشده در مستندات استفاده شود.
مثال خط فرمان:
javadoc --add-stylesheet new_stylesheet_1.css --add-stylesheet new_stylesheet_2.css pkg_foo
--allow-script-in-comments
به جاوااسکریپت در گزینهها و کامنتها اجازه میدهد.
-author
متن @author را در اسناد تولیدشده شامل میشود.
-bottom کد-html
متنی را که باید در پایین هر فایل خروجی قرار گیرد مشخص میکند.
متن در پایین صفحه، زیر نوار ناوبری پایینی قرار میگیرد. متن
میتواند حاوی تگهای HTML و فاصله باشد، اما در این صورت، متن باید
در علامت نقلقول (گیومه) قرار گیرد. برای هرگونه علامت نقلقول
داخلی در متن، از نویسههای گریز (escape) استفاده کنید.
-charset نام
مجموعه نویسه (character set) HTML را برای این سند مشخص میکند.
نام باید یک نام ترجیحی MIME باشد همانطور که در ثبت IANA،
مجموعههای نویسه [http://www.iana.org/assignments/character-sets]
مشخص شده است.
برای مثال:
javadoc -charset "iso-8859-1" mypackage
این دستور خط زیر را در سربرگ هر صفحه تولیدشده درج میکند:
تگ meta در استاندارد HTML (4197265 و 4137321)، نمایش سند HTML
[http://www.w3.org/TR/REC-html40/charset.html#h-5.2.2] شرح داده
شده است.
-d دایرکتوری
دایرکتوری مقصدی را مشخص میکند که ابزار javadoc فایلهای HTML
تولیدشده را در آن ذخیره میکند. اگر گزینه -d را حذف کنید، فایلها
در دایرکتوری جاری ذخیره میشوند. مقدار دایرکتوری میتواند مطلق یا
نسبی نسبت به دایرکتوری کاری جاری باشد. دایرکتوری مقصد هنگام
اجرای ابزار javadoc بهطور خودکار ایجاد میشود.
• لینوکس و macOS: برای مثال، دستور زیر مستندات را برای بسته
com.mypackage تولید کرده و نتایج را در دایرکتوری /user/doc/
ذخیره میکند:
javadoc -d /user/doc/ com.mypackage
• ویندوز: برای مثال، دستور زیر مستندات را برای بسته
com.mypackage تولید کرده و نتایج را در دایرکتوری \user\doc\
ذخیره میکند:
javadoc -d \user\doc\ com.mypackage
-docencoding نام
کدگذاری فایلهای HTML تولیدشده را مشخص میکند. نام باید یک نام
ترجیحی MIME باشد همانطور که در ثبت IANA، مجموعههای نویسه
[http://www.iana.org/assignments/character-sets] مشخص شده است.
سه گزینه برای استفاده در دستور کدگذاری javadoc موجود است. گزینه
-encoding برای کدگذاری فایلهای خواندهشده توسط ابزار javadoc
استفاده میشود، در حالی که گزینههای -docencoding و -charset برای
کدگذاری فایلهای نوشتهشده توسط ابزار استفاده میشوند. از سه گزینه
موجود، حداکثر یک گزینه کدگذاری ورودی و یک گزینه کدگذاری خروجی در
یک دستور کدگذاری استفاده میشوند. اگر هر دو گزینه کدگذاری ورودی
و خروجی را در یک دستور مشخص کنید، باید مقدار یکسانی داشته باشند.
اگر هیچ گزینه خروجی را مشخص نکنید، بهطور پیشفرض از کدگذاری ورودی
استفاده میشود.
برای مثال:
javadoc -docencoding "iso-8859-1" mypackage
-docfilessubdirs
زیردایرکتوریهای doc-file را بهطور بازگشتی کپی میکند. کپی عمیق
دایرکتوریهای doc-files را فعال میکند. زیردایرکتوریها و تمام
محتویات بهطور بازگشتی در مقصد کپی میشوند. برای مثال، دایرکتوری
doc-files/example/images و تمام محتویات آن کپی میشوند. گزینه
-excludedocfilessubdir میتواند برای مستثنی کردن زیردایرکتوریهای
خاص استفاده شود.
-doctitle کد-html
عنوانی را برای قرار دادن نزدیک بالای فایل خلاصه نمای کلی
(overview summary) مشخص میکند. متن مشخصشده در تگ title به عنوان
یک سربرگ سطح اولِ وسطچین، مستقیماً زیر نوار ناوبری بالایی قرار
میگیرد. تگ title میتواند حاوی تگهای HTML و فاصله باشد، اما در
این صورت باید عنوان را در علامت نقلقول قرار دهید. علامتهای
نقلقول اضافی در تگ title باید گریز داده شوند (escaped). برای
مثال، javadoc -doctitle "My Library
v1.0"
com.mypackage.
-excludedocfilessubdir نام۱,نام۲...
هنگام کپی بازگشتی زیردایرکتوریهای doc-file، هر زیردایرکتوری با
نامهای دادهشده را مستثنی میکند. بخش -docfilessubdirs را ببینید.
به دلایل تاریخی، : میتواند در هر کجای آرگومان به عنوان جداکننده
به جای , استفاده شود.
-footer کد-html
متن پاورقی را برای قرار دادن در پایین هر فایل خروجی مشخص میکند.
مقدار کد-html در سمت راست نوار ناوبری پایینی قرار میگیرد. مقدار
کد-html میتواند حاوی تگهای HTML و فاصله باشد، اما در این صورت،
مقدار کد-html باید در علامت نقلقول قرار گیرد. از نویسههای گریز
برای هرگونه علامت نقلقول داخلی در پاورقی استفاده کنید.
-group نام بسته۱,بسته۲...
بستههای مشخصشده را در صفحه نمای کلی (Overview) با هم گروهبندی
میکند. به دلایل تاریخی، : میتواند به عنوان جداکننده در هر کجای
آرگومان به جای , استفاده شود.
-header کد-html
متن سربرگ را برای قرار دادن در بالای هر فایل خروجی مشخص میکند.
سربرگ در سمت راست نوار ناوبری بالایی قرار میگیرد. مقدار header
میتواند حاوی تگهای HTML و فاصله باشد، اما در این صورت، header
باید در علامت نقلقول قرار گیرد. از نویسههای گریز برای علامتهای
نقلقول داخلی در سربرگ استفاده کنید. برای مثال، javadoc -header
"My Library
v1.0" com.mypackage.
-helpfile نام_فایل
فایلی را که به پیوند HELP در نوارهای ناوبری بالا و پایین متصل
میشود، شامل میسازد. بدون این گزینه، ابزار javadoc یک فایل
راهنما به نام help-doc.html ایجاد میکند که در ابزار javadoc به
صورت کد سخت قرار دارد. این گزینه به شما امکان میدهد مقدار
پیشفرض را لغو کنید. نام_فایل میتواند هر نامی باشد و محدود به
help-doc.html نیست. ابزار javadoc پیوندهای موجود در نوار ناوبری
را بر این اساس تنظیم میکند. برای مثال:
• لینوکس و macOS:
javadoc -helpfile /home/user/myhelp.html java.awt
• ویندوز:
javadoc -helpfile C:\user\myhelp.html java.awt
-html5 این گزینه بیاثر (no-op) است و صرفاً برای سازگاری با گذشته حفظ شده
است.
--javafx یا -javafx
قابلیت JavaFX را فعال میکند. اگر کلاسهای کتابخانه JavaFX در
مسیر ماژول شناسایی شوند، این گزینه بهطور پیشفرض فعال است.
-keywords
تگهای کلمه کلیدی در HTML را برای هر کلاس به فایل تولیدشده
اضافه میکند. این تگها میتوانند به موتورهای جستجویی که به دنبال
تگهای میگردند در یافتن صفحات کمک کنند. اکثر موتورهای
جستجو که کل اینترنت را جستجو میکنند به تگهای نگاه
نمیکنند، زیرا صفحات ممکن است از آنها سوءاستفاده کنند. موتورهای
جستجوی ارائهشده توسط شرکتهایی که جستجوهای خود را به وبسایت خود
محدود میکنند، میتوانند از بررسی تگهای بهرهمند شوند.
تگهای شامل نام کاملاً واجد شرایط کلاس و نامهای غیر واجد
شرایط فیلدها و متدها هستند. سازندهها گنجانده نمیشوند زیرا با
نام کلاس یکسان هستند. برای مثال، کلاس String با این کلمات کلیدی
شروع میشود:
-link url
پیوندهایی به مستندات موجودِ تولیدشده توسط javadoc از کلاسهای
دارای ارجاع خارجی ایجاد میکند. آرگومان url نشانی وب مطلق یا
نسبی دایرکتوری حاوی مستندات تولیدشده خارجی javadoc است.
میتوانید چندین گزینه -link را در یک اجرای ابزار javadoc مشخص
کنید تا به چندین سند پیوند داده شود.
باید یک فایل package-list یا element-list در این دایرکتوری url
وجود داشته باشد (در غیر این صورت، از گزینه -linkoffline استفاده
کنید).
توجه: فایلهای package-list و element-list توسط ابزار javadoc
هنگام تولید مستندات API ایجاد میشوند و نباید توسط کاربر تغییر
داده شوند.
هنگامی که از ابزار javadoc برای مستندسازی بستهها استفاده میکنید،
از فایل package-list برای تعیین بستههای اعلانشده در یک API
استفاده میکند. هنگامی که اسناد API را برای ماژولها تولید
میکنید، ابزار javadoc از فایل element-list برای تعیین ماژولها و
بستههای اعلانشده در یک API استفاده میکند.
ابزار javadoc نامها را از فایل فهرست مناسب میخواند و سپس به
بستهها یا ماژولها در آن نشانی وب پیوند میدهد.
هنگامی که ابزار javadoc اجرا میشود، مقدار url در پیوندهای ایجادشده کپی میشود. بنابراین، url باید نشانی وب دایرکتوری
باشد و نه یک فایل.
میتوانید از پیوند مطلق برای url استفاده کنید تا اسناد شما
بتوانند به سندی در هر وبسایتی پیوند داده شوند، یا میتوانید از
پیوند نسبی برای پیوند دادن صرفاً به یک مکان نسبی استفاده کنید.
اگر از پیوند نسبی استفاده میکنید، مقداری که ارسال میکنید باید
مسیر نسبی از دایرکتوری مقصد (مشخصشده با گزینه -d) به دایرکتوری
حاوی بستههای پیوندشده باشد. هنگامی که یک پیوند مطلق را مشخص
میکنید، معمولاً از پیوند HTTP استفاده میکنید. با این حال، اگر
میخواهید به یک فایلسیستم که فاقد وبسرور است پیوند دهید، میتوانید
از پیوند فایل استفاده کنید. تنها زمانی از پیوند فایل استفاده
کنید که هر کسی که میخواهد به مستندات تولیدشده دسترسی داشته باشد،
همان سیستم فایل را به اشتراک بگذارد. در همه موارد و در تمام
سیستمهای عامل، از اسلش به عنوان جداکننده استفاده کنید، چه URL
مطلق باشد یا نسبی، و https:، http:، یا file: همانطور که در
یادداشت URL: مکانیابهای یکنواخت منبع
[http://www.ietf.org/rfc/rfc1738.txt] مشخص شده است.
-link https:// مشخص نشده باشد، یا صفتهای عنوان یا خلاصه
در عنصر
مشخص نشده باشند.
اگر انتظار برود که یک ابزار اعتبارسنجی پاییندستی در فایلهای تولیدشده
توسط 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:فهرست
که در آن فهرست یک لیست جداشده با کاما از یک یا چند مورد از
accessibility، html، missing، syntax و reference است.
نامهای موجود در فهرست همان نامهای گروه هستند که توسط گزینه خط فرمان
-Xdoclint برای javac و javadoc پشتیبانی میشوند. (این همان قراردادی است
که توسط گزینه -Xlint در javac و نامهای متناظر پشتیبانیشده توسط
@SuppressWarnings رعایت میشود).
نامهای موجود در فهرست را میتوان به طور معادل در آرگومانهای جداگانه
حاشیهنویسی مشخص کرد. برای مثال موارد زیر معادل هستند:
• @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 نمیتواند مشکلاتی مانند پیوندهای گمشده،
خطاها در تگلتهای سفارشی ارائهشده توسط کاربر، یا مشکلات درون خود داکلت
استاندارد را گزارش کند. همچنین نمیتواند خطاها را در کامنتهای
مستندسازی در مرزهای بین محتوای موجود در یک کامنت مستندسازی و محتوای
تولیدشده توسط یک تگلت سفارشی به طور قابل اعتمادی شناسایی نماید.
JDK 21 2023 JAVADOC(1)