【发布时间】:2017-10-26 07:43:22
【问题描述】:
我有一个由 18 个模块和一个父项目组成的大项目。这个项目大约需要 1 个小时来构建,为了改进这一点,我们决定使用 maven 配置文件通过设置 4 个不同的 maven 配置文件来减少时间,每个配置文件都有一组项目模块。 父 pom.xml 模块是:
<modules>
<module>module1</module>
<module>module2</module>
<module>module3</module>
<module>module4</module>
<module>module5</module>
<module>module6</module>
<module>module7</module>
<module>module8</module>
</modules>
现在是这样的
<profiles>
<profile>
<id>main</id>
<modules>
<module>module1</module>
<module>module2</module>
<module>module3</module>
</modules>
</profile>
<profile>
<id>profile1</id>
<modules>
<module>module4</module>
<module>module5</module>
</modules>
</profile>
<profile>
<id>profile2</id>
<modules>
<module>module6</module>
</modules>
</profile>
<profile>
<id>profile3</id>
<modules>
<module>module7</module>
<module>module8</module>
</modules>
</profile>
</profiles>
我们正在使用 jenkins 构建项目,并在 maven 选项中提供配置文件名称。这里的问题是我们看到构建花费几乎相同的时间,并且它在日志中显示声纳和三叶草覆盖在整个项目而不是那组模块上运行!知道如何解决这个问题吗?有人有更好的方法吗?
【问题讨论】:
-
您是否希望在运行
profile2时分析例如模块6?以及运行profile3时要分析的模块7和8? -
是的!我尝试在配置文件定义中使用
,它适用于某些模块,但对于其他模块不起作用,不知道为什么。 pom 也不好看,因为我必须在每个配置文件中都这样做。 -
第一次真的只有 18 个模块需要 1 小时来构建吗?为什么每次构建都运行声纳?三叶草覆盖率?首先删除声纳分析,因为声纳分析每天只有意义一次。运行没有任何测试(这些测试真的是单元测试吗?)你检查过测试需要多长时间吗?可以很容易地从 jenkins 的日志输出中提取出来......(顺便说一句:配置文件并不是真正的解决方案)......
-
是的!声纳分析和上传生成的战争/罐子需要很长时间。是的,它只是一个单元测试用例。除了使用配置文件,您还推荐什么方法?
标签: maven jenkins sonarqube jenkins-plugins jenkins-pipeline