2013-01-08 49 views
1

部分我们的项目,我们有大部分与Java 1.5开发我们的模块,但还有一些是CheckStyle的运行已经转移到Java 1.6。不同的JDK

的JAVA_HOME指向的Java 1.5版,这是怎么开始的蚂蚁用。

编译我们的模块与他们的,我们使用由javac的Ant任务支持叉,可执行文件和编译器设置的Java的正确版本。

但是运行的CheckStyle任务时,它看起来好像没有这样一个“叉”等价和的CheckStyle将始终与任何蚂蚁与运行(在我们的例子Java 1.5中)开始。这会导致我们某些类的checkstyle错误。

[CheckStyle的] ... \ SomeJavaClass.java:0:有一个例外 - 因为java.lang.UnsupportedClassVersionError:错误版本号的.class文件

更改JAVA_HOME指向Java 1.6的修复问题时运行java 1.6模块的checkstyle任务,但是在运行Jenkins构建时,这不是一个选项。

有关如何解决这个问题的任何想法?我相信我不是第一个遇到这个问题的人,谷歌帮不了什么忙。 预先感谢您。 朱利安

回答

0

好问题。您可以使用JavaExec Ant任务执行checkstyle,而不是通过checkstyle ant任务。这样,您可以在每次执行时选择JVM,甚至可以并行执行(例如通过ant-contrib的ForEach task)。 Here's如何从命令行运行checkstyle。

此外,您还可以排除从CheckStyle的运行.class文件。那么也许它会停止抱怨。 Checkstyle不需要类文件,因为它完全在Java源代码上运行。