我有一个 .travis.yml
文件,它指定了一些较旧的 JDK(见下文),因为我已经 promise 支持 JDK 6 并且想知道我是否通过依赖来破坏构建@since 7
或更高版本的内容。
我的 maven-javadoc-plugin
配置使用了一些旧 javadoc 不支持的 javadoc 标志。
即使在使用 jdk6 JAVA HOME 或以其他方式解决此问题时,是否有任何方法可以让 travis 使用现代 javadoc?
我可以通过在 script
阶段检查 $TRAVIS_JDK_VERSION
来尝试有条件地传递 -Dmaven.javadoc.skip=true
,但是我'如果有更好的方法,我宁愿不要让我的 .travis.yml
过于复杂。
.travis.yml
language: java
jdk:
- openjdk6
- oraclejdk7
install: mvn install -DskipTests=true -Dmaven.javadoc.skip=true -Dgpg.skip=true -B -q
script: mvn verify -Dgpg.skip=true -B -q
和一个像这样配置javadoc的POM
POM
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.3</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<nohelp>true</nohelp>
<show>public</show>
<charset>UTF-8</charset>
<doctitle>JSON Sanitizer</doctitle>
<!-- The Javadoc that ships with JDK 8 is spammy.
http://docs.oracle.com/javase/8/docs/technotes/tools/unix/javadoc.html#BEJEFABE -->
<additionalparam>-Xdoclint:-missing</additionalparam>
</configuration>
</plugin>
Error in log
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.3:jar (attach-javadocs) on project json-sanitizer: MavenReportException: Error while generating Javadoc:
[ERROR] Exit code: 1 - javadoc: error - invalid flag: -Xdoclint:-missing
[ERROR]
[ERROR] Command line was: /usr/lib/jvm/java-6-openjdk-amd64/jre/../bin/javadoc @options @packages
[ERROR]
[ERROR] Refer to the generated Javadoc files in '/home/travis/build/OWASP/json-sanitizer/target/apidocs' dir.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
The command "mvn verify -Dgpg.skip=true -B -q" exited with 1.
Done. Your build exited with 1.
最佳答案
以下内容适合我,但我对这种程度的 bash-fu 不满意。
可操作的更改是 script: ...
行。
language: java
sudo: false
jdk:
- openjdk6
- oraclejdk8
install: mvn install -DskipTests=true -Dmaven.javadoc.skip=true -Dgpg.skip=true -B -q
script: "mvn verify -Dgpg.skip=true -Dmaven.javadoc.skip=$(echo $TRAVIS_JDK_VERSION | grep -q openjdk6 && echo -n true || echo -n false) -B -q"
关于java - Travis CI 失败并警告有关旧 jdk 下的 -Xdoclint 标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35162223/