2013-04-10 11 views
0

我有一個多模塊項目(與很多子模塊)在Sonar中定義,它工作的很好,直到我將聲納升級到新版本。遷移到新的2.0 ant任務聲納時丟失的必要屬性

我以前的設置爲:

  1. 單親build.xml包含所有像JDBC連接等一般項目屬性此外,它包含的<sonar:sonar />任務運行聲納。這個父項目不包含任何源/二進制文件,只是構建子模塊的指令。
  2. 許多子模塊只包含子模塊的特定屬性,如sonar.projectKeysonar.sourcessonar.binaries

現在在新的聲納ant任務build.xml文件,我需要在父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就像我在以前的版本做了?這會爲我節省很多工作。

感謝

回答

0

還有在Ant任務,這是關係到嵌入聲納亞軍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 

,並只需在頂部的build.xml文件中保留「admin-api.sonar.projectBaseDir」屬性(就像你所做的那樣)。

+0

我已經添加了'sonar.sources =「」'只是爲了擺脫錯誤。現在我發現了另一個錯誤,你可以看到我已經設置了'sonar.libraries =「server/third-party-jars」'。我爲所有子模塊在一個地方安裝了所有的庫jar,但sonar在每個子模塊根目錄中查找路徑「server/third-party-jars」,而不是主要位置。這裏的繼承模型相當混亂,我認爲文檔對於發生的事情不夠清楚。我將不得不恢復到以前的版本... – Michael 2013-04-10 11:18:17