我有一个多模块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重新编译所有内容,即使没有任何更改?
答案 0 :(得分:0)
事实证明这是导致我问题的其他原因......我使用update-alternatives --config java
更改了我的Java版本,但不幸的是,这并没有改变Gradle似乎用于编译的JAVA_HOME
...但是我用来运行代码的插件并不关心JAVA_HOME
而只是使用系统java ...因为JAVA_HOME
和/usr/bin/java
有不同的版本,这就是造成我的问题的原因!
对不起,如果有人在这个时间浪费了......但希望这可能在将来帮助其他人:)