我有声纳的以下ant项目设置:
<!-- list of Sonar project related properties -->
<property name="sonar.projectName" value="bla bla" />
<property name="sonar.projectKey" value="com.my.project" />
<property name="sonar.projectVersion" value="7.3" />
<property name="sonar.language" value="java" />
<property name="sonar.modules" value="admin-api" />
<!-- all of the sub-modules -->
<property name="admin-api.sonar.projectName" value="admin-api" />
<property name="admin-api.sonar.projectBaseDir" location="server/admin/admin-api"/>
<property name="admin-api.sonar.sources" value="src" />
<property name="admin-api.sonar.binaries" value="build" />
<sonar:sonar xmlns:sonar="antlib:org.sonar.ant">
<!-- path to libraries (optional). These libraries are for example used by the Java Findbugs plugin -->
<libraries>
<path>
<fileset dir="server/third-party-jars" includes="*.jar" />
</path>
</libraries>
</sonar:sonar>
我收到1警告:
[sonar:sonar] *****************************************************************************************************************************************
[sonar:sonar] /!\ Sonar Ant Task running in compatibility mode: please refer to the documentation to udpate your scripts to comply with the standards.
[sonar:sonar] *****************************************************************************************************************************************
还有以下错误:
The following mandatory information is missing:
- task attribute 'key'
- task attribute 'version'
我了解迁移到新sonar ant task 2.0
时发生了变化,但无法找到指定更改的地方。
此外,我了解现在所有模块设置都必须仅在父 build.xml
中指定,而不是在子模块build.xml文件中指定。那么为什么我会收到错误呢?我按照https://github.com/SonarSource/sonar-examples/tree/master/projects/multi-module/ant中的示例进行了操作。我错过了什么吗?
由于
答案 0 :(得分:1)
您处于兼容模式,因为您已在“sonar:sonar”标记内定义了“库”。相反,您应该在此标记之外定义“sonar.libraries”,方法是使用逗号连接所有JAR文件路径。
然后多模块机制将按预期工作。
答案 1 :(得分:1)
我面临同样的问题。在我的例子中,build.xml看起来像下面的:
<target depends="build" name="sonar-runner">
<!-- Define the SonarQube properties -->
<property name="sonar.host.url" value="http://sonar-server:9000/sonar" />
<property name="sonar.jdbc.url" value="jdbc:jtds:sqlserver://comp-sql-db-server/sonar;SelectMethod=Cursor" />
<property name="sonar.jdbc.username" value="XXXXXX" />
<property name="sonar.jdbc.password" value="*******" />
<property name="sonar.projectKey" value="asdfsaf:2550" />
<property name="sonar.projectName" value="Proj 1" />
<property name="sonar.projectVersion" value="4.0.1" />
<property name="sonar.language" value="java" />
<property name="sonar.profile" value="Sonar Way" />
<property name="sonar.sources" value="src" />
<property name="sonar.sourceEncoding" value="UTF-8" />
<!-- run sonar for this project -->
<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 -->
<classpath path="${lib-dist}/sonar/sonar-ant-task-2.1.jar" />
</taskdef>
<!-- Execute Sonar -->
<sonar:sonar />
</target>
这意味着我已经为单个项目设置了ant,但是不知道为什么它需要Key和Version甚至它在属性中定义,即使我没有在声纳中提供任何东西:sonar tag。
由于