我创建了将运行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中有什么方法可以实现上述目标。
谢谢
答案 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
因为第二次执行扫描程序会覆盖所有数据。