我有两个项目作为我的多项目构建的一部分,ProjectA
并且ProjectB
.
ProjectA
compile
依赖于ProjectB
. 我也有自动版本号增量,每个项目都包含一个versions.json
包含最新版本号的文件。我有 gradle 脚本,可以在gradle publish
.
现在,当对 进行更改ProjectA
并执行 a时gradle clean publish
,ProjectB
也会将其部署到 Nexus,即使它没有更改。我怎样才能阻止这种情况发生?
请注意,构建总是从干净完成,因为这个过程是由我们的 CI 服务器发生的,并且总是从一个新的克隆完成,所以像下面这样的解决方案不起作用:
publish {
onlyIf { jar.didWork }
}
如果工件与上游的最新副本不同,我如何确保工件仅发布到 Nexus?也许解决这个问题的一种方法是不在publish
依赖项目上运行。但是怎么做?