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