Java 1.8.0_121以降でJavaScriptを含むJavadocを生成する(maven)
JDK 1.8.0_121以降から、JavadocにJavaScriptを含むJavaScriptを含む場合、オプション「--allow-script-in-comments」が必要になり、次のようなエラーがでるようになりました。
[INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 4.083 s [INFO] Finished at: 2017-09-01T23:49:17+09:00 [INFO] Final Memory: 17M/226M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.4:javadoc (default-cli) on project XXX: An error has occurred in JavaDocs report generation: [ERROR] Exit code: 1 - javadoc: エラー - -headerの引数にJavaScriptが含まれています。 [ERROR] --allow-script-in-commentsを使用して、JavaScriptの使用を許可してください。 [ERROR] [ERROR] Command line was: C:\usr\java\jdk1.8.0_121\jre\..\bin\javadoc.exe -J-Xmx512m @options @packages ・・・
対応として、エラーメッセージの通りに指定します。
maven-javadoc-pluginを使用している場合は次のように指定します。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>2.10.4</version> <configuration> <nohelp>true</nohelp> <charset>UTF-8</charset> <encoding>UTF-8</encoding> <docencoding>UTF-8</docencoding> <locale>ja_JP</locale> <maxmemory>512m</maxmemory> <links> <link>https://docs.oracle.com/javase/jp/8/docs/api/</link> <link>http://super-csv.github.io/super-csv/apidocs/</link> </links> <stylesheetfile>${basedir}/src/main/javadoc/stylesheet.css</stylesheetfile> <docfilessubdirs>true</docfilessubdirs> <!-- スクリプトの埋め込む記述を許可する指定 --> <additionalparam>--allow-script-in-comments</additionalparam> <!-- ヘッダーにスクリプトを埋め込む記述 --> <header>${project.name} ${project.version} <![CDATA[ <link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.1.0/styles/default.min.css"> <script src="http://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.1.0/highlight.min.js"></script> <script src="https://code.jquery.com/jquery-1.12.0.min.js"></script> <script> $(document).ready(function() { $('pre.highlight code').each(function(i, block) { hljs.highlightBlock(block); }); }); </script> ]]> </header> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin>