是否可以将新模块添加到现有的SonarQube项目?

时间:2018-12-09 15:53:17

标签: sonarqube sonarqube-scan

我创建了将运行UT + SonarQube扫描的Jenkins作业。 文件夹结构是我有一个模块,可以在其下运行UT和Sonar扫描的不同组件。 资料夹结构: M1 / M1_C1 M1 / M1_C2 M1 / M1C3

M2 / M2_C1 M2 / M2_C2

在代码中,我传递了如下声纳属性:

echo 'sonar.projectKey='M1.sonar > sonar-project.properties
echo 'sonar.projectName='M1 >> sonar-project.properties
echo 'sonar.projectVersion=1.0'

echo 'sonar.host.url='$SONAR_URL >> sonar-project.properties
echo 'sonar.login='$SONAR_CREDENTIAL >> sonar-project.properties
echo 'sonar.modules=module1' >> sonar-project.properties

echo 'module1.sonar.projectName='M1_C1 >> sonar-project.properties
echo 'module1.sonar.projectKey='M1_C1.sonar$COMPONENT_KEY >> sonar-project.properties
echo 'module1.sonar.sources='$SRC_DIR >> sonar-project.properties

现在,当我在所有组件上运行作业时,在声纳仪表板的M1项目下,它将创建M1_C1组件,但是在下一次运行时,将删除M1_C1并添加M1_C2。每次运行都会重置类似项目的项目。

我希望你们能理解我的问题。

我希望所有后续成员都应添加新模块,而不删除旧模块。

在SonarQube中有什么方法可以实现上述目标。

谢谢

1 个答案:

答案 0 :(得分:0)

您必须一起扫描所有源。不能推送部分数据并将其附加。

这意味着您可以执行以下操作:

# create sonar-project.properties
echo 'sonar.projectKey='M1.sonar > sonar-project.properties
echo 'sonar.projectName='M1 >> sonar-project.properties
echo 'sonar.projectVersion=1.0' >> sonar-project.properties
echo 'sonar.host.url='$SONAR_URL >> sonar-project.properties
echo 'sonar.login='$SONAR_CREDENTIAL >> sonar-project.properties
echo 'sonar.modules=module1,module2' >> sonar-project.properties
echo 'module1.sonar.projectName='M1_C1 >> sonar-project.properties
echo 'module1.sonar.projectKey='M1_C1.sonar$COMPONENT_KEY >> sonar-project.properties
echo 'module1.sonar.sources='$SRC_DIR >> sonar-project.properties
echo 'module2.sonar.projectName='M2_C1 >> sonar-project.properties
echo 'module2.sonar.projectKey='M2_C1.sonar$COMPONENT_KEY2 >> sonar-project.properties
echo 'module2.sonar.sources='$SRC_DIR2 >> sonar-project.properties
# execute scanner
sonar-scanner

但是您不能执行以下操作:

# create sonar-project.properties
echo 'sonar.projectKey='M1.sonar > sonar-project.properties
echo 'sonar.projectName='M1 >> sonar-project.properties
echo 'sonar.projectVersion=1.0' >> sonar-project.properties
echo 'sonar.host.url='$SONAR_URL >> sonar-project.properties
echo 'sonar.login='$SONAR_CREDENTIAL >> sonar-project.properties
echo 'sonar.modules=module1' >> sonar-project.properties
echo 'module1.sonar.projectName='M1_C1 >> sonar-project.properties
echo 'module1.sonar.projectKey='M1_C1.sonar$COMPONENT_KEY >> sonar-project.properties
echo 'module1.sonar.sources='$SRC_DIR >> sonar-project.properties
# execute scanner
sonar-scanner

# create sonar-project.properties
echo 'sonar.projectKey='M1.sonar > sonar-project.properties
echo 'sonar.projectName='M1 >> sonar-project.properties
echo 'sonar.projectVersion=1.0' >> sonar-project.properties
echo 'sonar.host.url='$SONAR_URL >> sonar-project.properties
echo 'sonar.login='$SONAR_CREDENTIAL >> sonar-project.properties
echo 'sonar.modules=module2' >> sonar-project.properties
echo 'module2.sonar.projectName='M2_C1 >> sonar-project.properties
echo 'module2.sonar.projectKey='M2_C1.sonar$COMPONENT_KEY2 >> sonar-project.properties
echo 'module2.sonar.sources='$SRC_DIR2 >> sonar-project.properties
# execute scanner
sonar-scanner

因为第二次执行扫描程序会覆盖所有数据。