我在 Sonar 中定义了一个多模块项目(包含许多子模块),它运行良好,直到我将声纳升级到较新版本。
我之前的设置是:
- 一个包含所有通用项目属性(如 jdbc 连接等)的单亲
build.xml
。它还包含<sonar:sonar />
运行 Sonar 的任务。这个父项目不包含任何源/二进制文件,只是构建子模块的指令。 - 许多
build.xml
仅包含子模块特定属性的子模块文件,例如sonar.projectKey
,sonar.sources
和sonar.binaries
现在在新的 Sonar ant 任务中,我需要在 parent 中定义所有内容buid.xml
。我已经通过以下方式定义了它(我在这里只展示了一个子模块,我假设如果我以后添加更多模块它应该工作相同):
<target name="sonar">
<taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml">
<classpath path="build-utils/lib/sonar-ant-task-2.0.jar" />
</taskdef>
<!-- list of Sonar database related properties -->
<property name="sonar.jdbc.url" value="jdbc:oracle:thin:@localhost/DB11g" />
<property name="sonar.jdbc.driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<!-- for security reasons, pass these parameters from outside -->
<property name="sonar.jdbc.username" value="" />
<property name="sonar.jdbc.password" value="" />
<property name="sonar.host.url" value="http://localhost:9000" />
<!-- list of Sonar project related properties -->
<property name="sonar.projectName" value="My Project" />
<property name="sonar.projectKey" value="com.my.project" />
<property name="sonar.projectVersion" value="7.3" />
<property name="sonar.language" value="java" />
<property name="sonar.libraries" value="server/third-party-jars"/>
<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" />
</target>
当我运行目标时,出现以下错误:
You must define the following mandatory properties for 'com.orca.rightv': sonar.sources
另一个问题,有没有办法build.xml
像我在以前的版本中那样保留每个模块中子模块的具体定义?那会为我节省很多工作。
谢谢