1

我们公司有很多子模块。我们想添加 Sonar 来检查我们的代码质量等等。如果我们从项目顶部开始构建,构建运行不会失败并为声纳创建报告。

我们的架构是这样的:

<Project>
   <module1>
   <module2>
   <module3>
       .
       .
       .
       .
   <moduleX>

但问题是,如果其中一个子模块失败,整个构建将不会成功。

现在的问题是:是否可以为每个模块构建和创建声纳报告而不为每个模块创建一个詹金斯作业?

4

1 回答 1

2

简短的回答是否定的。

长答案:如果您将所有项目放在顶级项目中并对其进行声纳分析,显然如果项目失败,那么声纳构建就会停止。原因是 Sonar 认为您正在分析单个项目(因为您使用“模块”列表创建的顶级 POM)。所以这是正常的,如果项目分析在某个时候失败,那么 Sonar 不会在分析中走得更远。

所以是的:您必须为每个项目定义 1 个 Jenkins 作业(或者可能有一些 Jenkins 插件允许您将作业配置应用于一组存储库 - 谁知道,那里有这么多插件)。

请注意,Jenkins 也可以通过 Groovy 脚本进行配置:如果您知道如何操作,这可以节省时间(您可以查看我们为迁移 Sonar Jenkins 插件编写的以下脚本 => http:// docs.codehaus.org/display/SONAR/Migration+from+Jenkins+Sonar+Plugin+1.6+to+1.8)。

于 2012-05-21T12:16:49.080 回答