java - Travis CI 失败并警告有关旧 jdk 下的 -Xdoclint 标志

标签 java travis-ci

我有一个 .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/

相关文章:

java - 我最近将我的项目转换为 Maven。但出现错误Resource read error : Could not load com/sun/xml/txw2/Content. class

java - 使用 Java 的 XML

docker - Travis CI - docker 镜像未推送到 dockerhub

github - 在 github 上不提交就测试 travis-ci 脚本

Java:切断字符串结尾的更简单方法

java - 从用于 Google map 标记的 SQLite 数据库中读取值

java - 与多个处理程序的 jetty session

java - 写入文件的 JUnit 测试在本地通过但在 Travis CI 上失败

c++ - 在 travis for clang 上使用不同的 libc++ 版本

continuous-integration - 在Travis CI .yml中允许非零返回码