5

我在 Mercurial 存储库中托管了一个 Gradle 多项目。我想以这样的方式设置我的 Jenkins,如果我只将更改提交到 1 个子项目,那么只有那个子项目将被构建并发布到我的 Nexus 存储库。

有人可以给我一个提示吗?还是完全有可能?

4

3 回答 3

2

我们有这样的工作。

我们在 Jenkins 中为每个 gradle 子项目创建一个项目。在 Jenkins 配置中,我们只构建子项目,方法如下:

gradle clean :<subproject>:build

我们仍然存在一个问题,即整个项目的所有签入都会触发该作业。我会将 Jenkins 配置为仅在签入子项目时才构建,但不知道如何指定。

于 2015-02-12T14:32:38.987 回答
1

将我们未来的最终解决方案留在这里。

我们为每个子项目创建了一个单独的 Jenkins 作业。Jenkins 的 Mercurial 插件允许指定“模块”:

通过在存储库中指定逗号或空格分隔的“模块”列表来减少不必要的构建。模块是该项目所在的存储库中的目录名称。如果设置了此字段,指定模块之外的更改将不会触发构建(即使由于 Mercurial 限制,整个存储库无论如何都已签出。)

这样我们的工作只有在监控子项目发生变化时才会被触发。

于 2016-05-27T06:35:21.147 回答
0

我猜你需要在 jenkins 中为每个子项目创建一个项目。

其他选择是查找是否有办法拦截 repo 同步并查看哪些子项目已更改并动态进行构建。

于 2013-03-21T05:35:00.143 回答