Gradleのjavadoc.options.bottom
等でJavaScriptを設定している方向けの内容です。
Java 1.8.0_121で、javadocコマンドはデフォルトでJavaScriptを許可しないようになりました。
http://www.oracle.com/technetwork/java/javase/8u121-relnotes-3315208.html
The javadoc tool will now reject any occurrences of JavaScript code in the javadoc documentation comments and command-line options, unless the command-line option, --allow-script-in-comments is specified.
javadocタスクを実行するとエラーになります。
$ ./gradlew javadoc
[snip]
:javadoc
javadoc: error - Argument for -bottom contains JavaScript.
Use --allow-script-in-comments to allow use of JavaScript.
1 error
:javadoc FAILED
FAILURE: Build failed with an exception.
JavaScriptを有効にするには、上記エラーメッセージに記載されているように--allow-script-in-comments
オプションを追加します。
javadoc.options {
def v = JavaVersion.current()
def g = System.properties['java.version'] =~ /\d+/
addBooleanOption '-allow-script-in-comments', v.java9Compatible || v.majorVersion == '8' && g.size() == 4 && ((g[2] as int) > 0 || (g[3] as int) >= 121)
}
addBooleanOption
の第一引数には、オプションから先頭の-
を除いたものを指定します。
第二引数には、オプションを設定するかどうかのboolean
値を指定します。
1.8.0_121以前のJava環境で当該オプションを指定すると、javadocタスク実行時にエラーが発生するので、Javaのバージョンを見てオプションを設定するかどうかを判断しています。
以上です。
参考
Gradleのissue
https://github.com/gradle/gradle/issues/1393
javadoc.options.addBooleanOption
の実装
https://github.com/gradle/gradle/blob/master/subprojects/language-java/src/main/java/org/gradle/external/javadoc/CoreJavadocOptions.java
https://github.com/gradle/gradle/blob/master/subprojects/language-java/src/main/java/org/gradle/external/javadoc/internal/JavadocOptionFile.java
https://github.com/gradle/gradle/blob/master/subprojects/language-java/src/main/java/org/gradle/external/javadoc/internal/BooleanJavadocOptionFileOption.java