【问题标题】:Is it possible to append new modules to existing SonarQube project?是否可以将新模块附加到现有的 SonarQube 项目?
【发布时间】:2019-05-10 15:59:16
【问题描述】:

我创建了 Jenkins 作业,它将运行 UT + SonarQube 扫描。 文件夹结构是我有一个模块,在该模块下运行 UT 和声纳扫描的不同组件。 文件夹结构: 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 中实现上述目标。

谢谢

【问题讨论】:

    标签: sonarqube sonarqube-scan


    【解决方案1】:

    您必须同时扫描所有来源。无法推送部分数据并追加。

    这意味着你可以这样做:

    # 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
    

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

    【讨论】:

    • 嗨 agabrys,感谢您的回复,但由于作业在单个组件上运行,我无法一次扫描所有来源。
    • 这意味着您不能将它们组合为一个模块。您的问题Is it possible to append new modules to existing SonarQube project? 的答案是不,这是不可能的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 2021-08-01
    相关资源
    最近更新 更多