1

私たちのプロジェクトの一部では、ほとんどのモジュールがJava 1.5で開発されていますが、他のいくつかはすでにjava1.6に移行されています。

JAVA_HOMEはJava1.5バージョンを指しており、これがantの始まりです。

モジュールを適切なバージョンのjavaでコンパイルするには、javac antタスクでサポートされているフォーク、実行可能ファイル、およびコンパイラー設定を使用します。

ただし、checkstyleタスクを実行すると、そのような「フォーク」に相当するものはないように見え、checkstyleは常にantで始まるもの(この場合はjava 1.5)で実行されます。これにより、一部のクラスでチェックスタイルエラーが発生します。

[checkstyle] ... \ SomeJavaClass.java:0:例外が発生しました-java.lang.UnsupportedClassVersionError:.classファイルのバージョン番号が正しくありません

JAVA_HOMEをjava1.6を指すように変更すると、java 1.6モジュールのcheckstyleタスクを実行するときの問題が修正されますが、これはJenkinsビルドを実行するときのオプションではありません。

これに対処する方法について何かアイデアはありますか?私は私がこの問題を抱えている最初の人ではないと確信しています、グーグルはあまり役に立ちませんでした。前もって感謝します。ジュリアン

4

1 に答える 1

0

良い質問。checkstyle ant タスクを実行する代わりに、 JavaまたはExec Ant タスクを使用してcheckstyle を実行できます。このようにして、実行ごとに JVM を選択でき、実行を並列化することもできます (たとえば、ant-contrib のForEach task を使用)。コマンドラインから checkstyle を実行する方法は次のとおりです

.classまた、 checkstyle の実行からファイルを除外することもできます。そうすれば文句を言わなくなるかもしれません。Checkstyle は完全に Java ソース上で動作するため、クラス ファイルは必要ありません。

于 2013-01-31T20:16:38.350 に答える