作为我们项目的一部分,我们的大部分模块都是使用 java 1.5 开发的,但其他一些模块已经迁移到 java 1.6。
JAVA_HOME 指向 java 1.5 版本,这就是 ant 开始的方式。
为了使用正确版本的 java 编译我们的模块,我们使用 javac ant 任务支持的 fork、可执行文件和编译器设置。
然而,当运行 checkstyle 任务时,似乎没有这样的“fork”等价物,并且 checkstyle 将始终以任何 ant 开头的方式运行(在我们的例子中是 java 1.5)。这将导致我们的某些类出现一些 checkstyle 错误。
[checkstyle] ...\SomeJavaClass.java:0: 出现异常 - java.lang.UnsupportedClassVersionError: .class 文件中的版本号错误
将 JAVA_HOME 更改为指向 java 1.6 可以解决运行 java 1.6 模块的 checkstyle 任务时的问题,但是在运行 Jenkins 构建时这不是一个选项。
关于如何解决这个问题的任何想法?我确信我不是第一个遇到这个问题的人,谷歌帮不上什么忙。先感谢您。朱利安