通过自定义使其工作install
,如下script
所示.travis.yml
:
language: java
install: mvn install -Dmaven.compiler.target=1.6 -Dmaven.compiler.source=1.6 -DskipTests=true
script: mvn test -Dmaven.compiler.target=1.6 -Dmaven.compiler.source=1.6
...正如此答案中所建议的那样。
无论如何,我不知道 Java 1.3 默认值的确切来源,但恕我直言,应该修复。Travis文档谈到了“相当好的默认值”,但在这种情况下,这似乎不是真的。
另一种选择是添加一段冗长的 Maven XML来明确指定源和目标级别。好吧,我个人反对必须这样做的想法,只是因为 CI 环境具有愚蠢的默认值。(Maven 的重点不是通过使用合理的约定来避免明确指定内容吗?)我目前pom.xml
在本地(例如mvn test
)以及在 Heroku 上部署时一切正常。
更新(2015,Java 8)
只是想补充一点,从 2015 年开始,使用Java 8代码库,您不再需要在 Maven 或 Travis 配置中进行此类自定义。您可以摆脱以下情况:
在pom.xml
, 在顶层<project>
:
<properties>
<java.version>1.8</java.version>
</properties>
并在.travis.yml
:
language: java
jdk: oraclejdk8
这很好。请注意,必须指定 JDK 8,即使 pom.xml 将 Java 版本设置为 1.8。Travis 否则默认使用 JDK 7。