2

Java プロジェクト (かなり標準的な Maven、Spring セットアップ) で Travis CI を試しています。

Travis docs に基づいて、これは.travis.ymlファイルで十分なはずです:

language: java

Travis はプロジェクトに気づき、デフォルトpom.xmlで実行mvn testされます。

ただし、Travis ビルドは失敗し、次のようになります。

error: static import declarations are not supported in -source 1.3

私のソースは Java 1.6 です。それをトラビスにどこでどのように伝えればよいですか? Java プロジェクトのドキュメントでは、-sourceオプションについてまったく言及されていません。(また、1.3 は少し変なデフォルトですよね?)

4

3 に答える 3

4

次のようにカスタマイズすることで機能するように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のドキュメントでは、「適度に適切なデフォルト」について説明していますが、この場合はそうではないようです。

もう 1 つのオプション、長い Maven XML を追加して、ソースとターゲットのレベルを明示的に指定することです。個人的には、CI 環境のデフォルトがばかげているという理由だけで、そうしなければならないという考えには反対です。(合理的な規則を使用して明示的に何かを指定することを回避することが Maven の全体的なポイントではありませんか?) 私の現在では、Heroku にデプロイするときだけでなく、pom.xmlローカルでもすべて正常に動作します。mvn test

更新 (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 

いいですね。pom.xml で Java バージョンが 1.8 に設定されている場合でも、JDK 8を指定する必要があることに注意してください。それ以外の場合、Travis はデフォルトで JDK 7 になります。

于 2013-10-03T12:28:53.543 に答える
0

この問題は確かに、現在 Travis ワーカー マシンにインストールされているMaven3 Ubuntu パッケージのバグに関連しています。

朗報:次の Travis CI ビルド環境では、Maven 3.1.1 が Apache tarball リリースと共にインストールされます。この更新プログラムは、2013 年 11 月に展開される予定です...

于 2013-11-07T18:59:24.963 に答える