我在Mercurial仓库中托管了Gradle多项目。我想以这样的方式设置我的Jenkins,如果我只对1个子项目进行更改,那么只会构建该子项目并将其发布到我的Nexus仓库。
有人可以给我一个提示吗?或者它是否可能?
答案 0 :(得分:2)
我们有点工作。
我们在Jenkins为每个gradle子项目创建一个项目。在Jenkins配置中,我们通过执行以下操作来构建子项目:
gradle clean :<subproject>:build
我们仍然遇到的问题是,对整个项目的所有签入都会触发作业。我想将Jenkins配置为仅在签入子项目时才构建,但不知道如何指定它。
答案 1 :(得分:1)
离开我们未来的最终解决方案。
我们为每个子项目创建了一个单独的Jenkins作业。 Jenkins的Mercurial插件允许指定“模块”:
通过在存储库中指定逗号或空格分隔的“模块”列表来减少不必要的构建。模块是此项目所在的存储库中的目录名。如果设置了此字段,则指定模块之外的更改将不会触发构建(即使由于Mercurial限制而无论如何都检出整个存储库。)
这样,只有在监控子项目发生变更时才会触发我们的工作。
答案 2 :(得分:0)
我猜你需要在每个子项目的jenkins中创建一个项目。
其他选项是查找是否有方法拦截回购同步并查看已更改的子项目并动态进行构建。