0

我有以下声纳的蚂蚁项目设置:

<!-- 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中的示例进行操作。我错过了什么吗?

谢谢

4

2 回答 2

1

您处于兼容模式,因为您在“sonar:sonar”标签中定义了“libraries”。相反,您应该在此标记之外定义“sonar.libraries”,方法是使用逗号连接所有 JAR 文件路径。

然后多模块机制将按预期工作。

于 2013-04-09T14:28:50.783 回答
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,但不知道为什么它需要密钥和版本,即使它在属性中定义,即使我没有在 sonar:sonar 标记内提供任何东西。

谢谢

于 2013-10-22T14:52:54.493 回答