java - 如何强制Gradle重新编译所有子项目源?

标签 java groovy gradle

我有一个多模块 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/

相关文章:

groovy - 捕获 : java. lang.StackOverflowError JsonBuilder 关闭

java - 将数组 ["null"、 "0"、 "1"、 "2"、 "2"、 "1"、 "0"] 转换为 ["1, ' 1. 0x10 4567910 1.1。 1', 'a', 1', ', 'b', '1.1.2']

Android.mk *** 缺少分隔符。停止。预建库的 LOCAL_SRC_FILES 应该只包含一个项目

java - 在 gradle 的构建任务中重新排序编译任务

java包和相互导入

java - Android:创建一个透明盒子,里面有元素

Java Replaceall 忽略大小写和特殊字符

android - 使用 Gradle 2.2.1 和 Android Studio 1.2.2 构建项目

android - 将旧的 gradle 项目导入新的 android studio 版本

java - Hibernate - 更新/选择后的结果相同