如何在sonarqube

时间:2017-04-10 14:05:34

标签: continuous-integration sonarqube sonar-runner sonarqube-scan

我在不同的文件夹中有一些代码,例如文件夹a,文件夹b,文件夹c ....所有这三个文件夹都在文件夹名称"声纳"中。如果我想使用sonarqube一次扫描所有这些文件夹,我该怎么办呢。如果我将sonar-project.properties文件保存在文件夹中,它会没问题吗?或者我是否需要将sonar-project.properties保存在文件夹a,文件夹b和文件夹c等所有文件夹中

1 个答案:

答案 0 :(得分:1)

通常每个文件夹都应有属性,以便对每个文件夹进行分析。

如果它符合您的需求并且不是一个很大的学习曲线,您也可以尝试以下方法: 先决条件: ANT知识 声纳API

优点: 1.每个代码分析的单/中心方法 2.可以避免每个项目/源文件夹的sonar.properties

在这种方法中,编写一个接受动态参数的ANT脚本

样品:

<target name="setsonarproperties" description="Setting the sonar properties">
    <property name="sonar.projectVersion" value="${projectVersion}" />
    <property name="sonar.projectKey" value="${targetProduct}_${projectVersion}" />
    <property name="sonar.projectName" value="${targetProduct}" />
    <property name="sonar.host.url" value="${hostUrl}" />
    <property name="sonar.login" value="${hostUserName}" />
    <property name="sonar.password" value="${hostPassword}" />
    <loadfile property="textFile" srcfile="${buildOrder}" />
    <for param="line" list="${textFile}" delimiter="${line.separator}">
        <sequential>
            <echo message="@{line}" />
            <copy todir="${sourcePath}/sonarsources/@{line}">
                <fileset dir="${sourcePath}/@{line}">
                </fileset>
            </copy>
        </sequential>
    </for>
</target>

接下来还设置声纳用户名和密码详细信息: 运行分析器:

<target name="sonar" depends="setsonarproperties" description="executing sonar">
    <taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml">
        <!-- Update the following line, or put the "sonar-ant-task-*.jar" file 
            in your "$HOME/.ant/lib" folder -->
    </taskdef>
    <sonar:sonar />
</target>