3

我有两个项目作为我的多项目构建的一部分,ProjectA并且ProjectB.

ProjectAcompile依赖于ProjectB. 我也有自动版本号增量,每个项目都包含一个versions.json包含最新版本号的文件。我有 gradle 脚本,可以在gradle publish.

现在,当对 进行更改ProjectA并执行 a时gradle clean publishProjectB也会将其部署到 Nexus,即使它没有更改。我怎样才能阻止这种情况发生?

请注意,构建总是从干净完成,因为这个过程是由我们的 CI 服务器发生的,并且总是从一个新的克隆完成,所以像下面这样的解决方案不起作用:

publish {
  onlyIf { jar.didWork }
}

如果工件与上游的最新副本不同,我如何确保工件仅发布到 Nexus?也许解决这个问题的一种方法是不在publish依赖项目上运行。但是怎么做?

4

0 回答 0