0

Sonarで定義されたマルチモジュールプロジェクト(多くのサブモジュールを含む)があり、ソナーを新しいバージョンにアップグレードするまでうまく機能していました。

私の以前の設定は次のとおりです。

  1. build.xmljdbc接続などの一般的なプロジェクトプロパティをすべて含む単一の親。また、 <sonar:sonar />Sonarを実行するタスクも含まれていました。この親プロジェクトには、ソース/バイナリは含まれず、サブモジュールをビルドするための指示のみが含まれます。
  2. 、およびbuild.xmlなどのサブモジュール固有のプロパティのみを含む多くのサブモジュールファイルsonar.projectKeysonar.sourcessonar.binaries

新しい Sonar ant タスクでは、parent 内のすべてを定義する必要がありますbuid.xml。次のように定義しました (ここではサブモジュールを 1 つだけ示します。後でモジュールを追加しても同じように動作するはずです)。

<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別の質問ですが、以前のバージョンで行ったように、各モジュールのサブモジュールの特定の定義を保持する方法はありますか? それは私に多くの仕事を救うでしょう。

ありがとう

4

1 に答える 1

0

Ant タスクの現在のバージョンには、組み込まれている Sonar Runner API のバージョンに関連するバグがあります。これは次のバージョンで修正される予定です: http://jira.codehaus.org/browse/SONARPLUGINS-2818

一方、上部に「sonar.sources」を定義すると、その値がモジュールに継承されます (もちろん、モジュールでオーバーライドすることもできます)。

モジュール レベルでのプロパティの定義に関しては、次のように、モジュールのルートに配置する「sonar-project.properties」ファイルでこれらのプロパティを定義できます。

sonar.projectName=My Project
# following needed only to override the values defined in top build.xml
sonar.sources=src
sonar.binaries=build

、そして「admin-api.sonar.projectBaseDir」プロパティを(あなたがしたように)一番上のbuild.xmlファイルに残してください。

于 2013-04-10T09:45:30.823 に答える