9

、、などのドットで始まる名前のカスタム タグレット ライブラリを作成しました。JDK 7 でコンパイルされています。.codelet.codelet.and.out

1.7 を使用して JavaDoc を生成するjavadoc.exeと、正常に動作します。しかし、JDK 8 で生成すると失敗します。

C:\...\Temp.java:5: error: no tag name after @
 * {@.codelet mypkg.Temp}`

タグレット(タグレットコード自体ではなく)を使用してコードを次のように変更すると{@codelet mypkg.Temp}

C:\...\Temp.java:5: error: unknown tag: codelet
 * {@codelet mypkg.Temp}
Note: Custom tags that were not seen:  @.codelet
1 error

タグレット ソース コードの名前をcod.elet(は既存のタグレット名であるcode.letため、適切ではありません) に変更し、その新しい名前を使用すると機能します。code

-tagオプションの JavaDoc ツール ドキュメント(セクションの下部付近) には、次のように記載されています。

競合の回避: 独自の名前空間を作成する場合は、パッケージに使用されるものと同様のドット区切りの命名規則を使用できます: com.mycompany.todo。Oracle は、名前にドットを含まない標準タグを引き続き作成します。作成したタグは、Oracle によって定義された同じ名前のタグの動作をオーバーライドします。@todo タグまたはタグレットを作成すると、後で Oracle が同じ名前の標準タグを作成した場合でも、定義した動作は常に同じになります。

ここで何か不足していますか?それとも、これは文書化されていない変更であり、本当にひどいものですか? その場合、ライブラリにかなり大きな変更が必要になるためです。

参考までに:タグレットの概要ドキュメント

4

1 に答える 1

4

ここで何か不足していますか?

さて、あなたが引用したドキュメントのセクションには次のように書かれています:

" ... パッケージに使用されるものと同様のドット区切りの命名規則を使用できます: com.mycompany.todo"

「ドットを含む名前」ではなく、「ドット区切り」の命名規則であることに注意してください。

「パッケージに使用されるものと同様」と表示されていることに注意してください。".mypackage" をパッケージ名として使用しようとすると、コンパイラは "No way!" と言うでしょう。

私が読んだのは、あなたの「.codelet」タグ名がドキュメントに記載されている基準を満たしていないということです。javadocそのため、タグレットの命名規則を厳密に適用するためにの Java 8 バージョンが変更されました。それはあなたの観点からは残念ですが、最終的に問題はツールではなく、javadoc コメントにあります。

于 2015-02-25T18:29:28.763 に答える