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

是否可以将新模块附加到现有SonarQube项目中?,sonarqube,sonarqube-scan,Sonarqube,Sonarqube Scan,我已经创建了Jenkins作业,它将运行UT+SonarQube扫描。 文件夹结构是我有一个模块,在这个模块下,UT和Sonar扫描将运行不同的组件。 文件夹结构: M1/M1_C1 M1/M1_C2 M1/M1C3 M2/M2_C1 M2/m2u C2 在代码中,我传递的声纳属性如下: echo 'sonar.projectKey='M1.sonar > sonar-project.properties echo 'sonar.projectName='M1 >> sonar

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

M2/M2_C1 M2/m2u 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
现在,当我在所有组件上运行作业时,在sonar dashboard中的M1项目下,它创建M1_C1组件,但在下一次运行时,M1_C1被删除,M1_C2被添加。它的同类项目在每次运行时都会重置

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

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

有没有办法在SonarQube中实现上述目标


谢谢

您必须一起扫描所有来源。推送部分数据并附加它是不可能的

这意味着你可以这样做:

# 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
但你不能这样做:

# 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

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

hi agabrys,谢谢您的回复,但由于作业在单个组件上运行,我无法同时扫描所有源。这意味着您无法将它们作为一个模块进行分组。在您的案例中,您的问题的答案是可以将新模块附加到现有SonarQube项目中吗?不,这是不可能的。