Java 为什么gradlew在不同的机器上构建不同的罐子?

Java 为什么gradlew在不同的机器上构建不同的罐子?,java,gradle,gradlew,Java,Gradle,Gradlew,我们在三台机器上有相同的源代码: -机器1:软呢帽27 -机器2:软呢帽27 -机器3:Windows 10 在这个项目中,我们有一个版本为4.4.1的gradlew脚本 在所有计算机上构建gradle缓存之前,该缓存为空。我们正在使用命令clean build进行构建 我们发现机器2和机器3上的jar大小相等,两个jar的工作方式与预期相同。但是机器1上的jar文件比其他jar少4KB,并且包含一些bug(当我们运行机器1上生成的jar时,Spring不会从属性文件中读取属性) 为什么会这样?

我们在三台机器上有相同的源代码:
-机器1:软呢帽27
-机器2:软呢帽27
-机器3:Windows 10

在这个项目中,我们有一个版本为4.4.1的
gradlew
脚本

在所有计算机上构建gradle缓存之前,该缓存为空。我们正在使用命令
clean build
进行构建

我们发现机器2和机器3上的jar大小相等,两个jar的工作方式与预期相同。但是机器1上的jar文件比其他jar少4KB,并且包含一些bug(当我们运行机器1上生成的jar时,Spring不会从属性文件中读取属性)

为什么会这样?如果源代码相同,为什么我们在1台机器上得到一个有错误的jar

此外,所有3台机器都有相同版本的Java和Gradle

此外,我们在机器1上制作了一个带有Windows 10的虚拟机(VirtualBox),并在虚拟机上安装了相同版本的Gradle和Java。jar已经成功构建,并且可以正常工作

此外,机器1和机器2具有相同版本的Groovy和Linux内核


所有3台机器上的硬件都不同。

我想到了一个硬件问题…@Henry可能,因为我们真的不知道为什么会发生这种情况。可能是构建脚本中的竞争条件?你在gradle中启用了并行化吗?@Matthias parallelization在gradle中被禁用。我建议使用--debug选项运行gradle,并比较好机器和坏机器上的输出。