我有一个大项目,包括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选项中提供了配置文件名称。这里的问题是我们看到构建几乎需要同一时间,并且它在日志中显示声纳和三叶草覆盖在整个项目上运行而不是那组模块!任何想法如何解决这个问题?任何人都有更好的方法吗?
答案 0 :(得分:1)
虽然可以exclude a module from analysis,但您无法从当前的方法中获得所需的结果。这是因为您希望对项目的每个子集执行SonarQube分析。可能,您希望每个子集在SonarQube中显示为不同的可浏览项目。但那不会发生什么。因为每个分析都将使用相同的项目ID进行,所以每个配置文件将覆盖之前的分析。
由于您的项目似乎由4个独立的子集组成,我建议您实际上将项目分成4个独立的子集,每个子集都有自己的项目ID,测试和分析。
答案 1 :(得分:1)
您可以在maven中试用parallel builds。