Gradle 在不重新运行编译步骤的情况下构建jar

Gradle 在不重新运行编译步骤的情况下构建jar,gradle,Gradle,我正在尝试建立一个构建环境,在这个环境中,我有一个运行标准gradle jar任务的作业来组装一个发布候选jar。然后我想运行一些手动测试,如果一切正常,我想用相同的工件创建一个新的jar。我不想重新编译任何东西,只需生成一个具有不同名称的新jar,发布候选jar的末尾有一个.rcXXX 确保.class文件是正确的将在Gradle之外处理,我感兴趣的只是Gradle配置 我尝试设置project.classes{onlyIf{false}},它跳过了classes任务,但由于某种原因,如果源代

我正在尝试建立一个构建环境,在这个环境中,我有一个运行标准gradle jar任务的作业来组装一个发布候选jar。然后我想运行一些手动测试,如果一切正常,我想用相同的工件创建一个新的jar。我不想重新编译任何东西,只需生成一个具有不同名称的新jar,发布候选jar的末尾有一个.rcXXX

确保.class文件是正确的将在Gradle之外处理,我感兴趣的只是Gradle配置

我尝试设置project.classes{onlyIf{false}},它跳过了classes任务,但由于某种原因,如果源代码发生更改,compileJava任务仍会运行


我还尝试删除jar上的compileJava依赖项(只是为了测试它),并为compileJava设置outputs.UpdateWhen{false},但它们似乎被忽略了。

您是否使用
clean
选项?指定时,将删除以前生成中准备的所有数据,并从头开始重建所有内容

不知道所有的类都是再次编译的,不应该。有最简单的工作示例吗


此外,您可以一次构建两个jar文件,然后进行测试,如果一切正常,只需释放具有不同名称的第二个jar

不确定你在这里想要达到什么。为什么不能复制现有的Jar文件呢?Jar文件有一个内嵌的pom,其中包含版本详细信息。我希望jar名称和pom之间保持一致。我已经弄明白了为什么上面的方法不起作用,这是因为它是多项目构建的一部分,而其他jar正在改变。我现在有另一个问题,我将在另一篇文章中询问。