我有一个多模块 Gradle 项目。
我用 Java 8 编译了所有内容,只是为了发现我的项目在 Java 8 中不起作用(一些 Groovy 或 Swing 问题),所以我将 java 改回 Java 7,但现在当我尝试运行时,即使在之后执行 gradle clean run
我认为会重新编译所有内容(run
取决于 jar
),我得到 Unsupported Major.minor version 52.0
根据经验,这意味着我的类文件是用比我尝试运行它更高的 Java 版本编译的(或者某些类文件是用不兼容的 java 版本编译的)。
看起来强制Gradle重新编译子项目的唯一方法是更改一些源文件...但是由于我有很多子项目,这太不方便了。有没有办法强制 Gradle 重新编译所有内容,即使没有任何更改?
最佳答案
事实证明是其他原因导致了我的问题...我使用 update-alternatives --config java
更改了我的 Java 版本,但不幸的是这并没有改变 JAVA_HOME
Gradle 似乎用于编译的 code>...但是我用来运行代码的插件并不关心 JAVA_HOME
并且只使用系统 java...作为 JAVA_HOME
code> 和 /usr/bin/java
有不同的版本,这就是导致我的问题的原因!
很抱歉,如果有人在这方面浪费了时间......但希望这实际上可以帮助其他人在未来:)
关于java - 如何强制Gradle重新编译所有子项目源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25217819/