2013-08-02 39 views
0

我們希望將使用Maven runner的現有多模塊Sonar項目轉換爲使用Ant runner。無論如何,這些項目都將Ant用於其主要構建,並且使用Ant完成所有任務將會更方便。將Sonar從Maven runner遷移到Ant runner時保留模塊鍵

我們必須保留項目的歷史,這意味着我們需要保留用於項目及其模塊的密鑰。我遇到了麻煩。

我們目前的Maven父POM看起來是這樣的(用戶界面類似,儘管語言的Flex):

<project ...> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.example</groupId> 
    <artifactId>anapp</artifactId> 
    <name>An Application</name> 
    <version>7.0</version> 
    <packaging>pom</packaging> 
    <modules> 
    <module>server</module> 
    <module>ui</module> 
    </modules> 
    <properties> 
    <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis> 
    </properties> 
</project> 

服務器模塊POM看起來是這樣的:

<project ...> 
    <parent> 
    <groupId>com.example</groupId> 
    <artifactId>anapp</artifactId> 
    <version>7.0</version> 
    </parent> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.example</groupId> 
    <artifactId>anapp_server</artifactId> 
    <name>Server</name> 
    <version>7.0</version> 
    <build> 
    <outputDirectory>build/classes</outputDirectory> 
    <sourceDirectory>src/main/java</sourceDirectory> 
    <testOutputDirectory>build/test/classes</testOutputDirectory> 
    <testSourceDirectory>src/test</testSourceDirectory> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <configuration> 
      <source>1.6</source> 
      <target>1.6</target> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
    <properties> 
    <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis> 
    <sonar.core.codeCoveragePlugin>emma</sonar.core.codeCoveragePlugin> 
    <sonar.emma.reportPath>build\codecoverage-results</sonar.emma.reportPath> 
    <sonar.surefire.reportsPath>build\test\results</sonar.surefire.reportsPath> 
    </properties> 
</project> 

我們成立命令行上的sonar.branch屬性爲「R7」。

的「MYAPP」項目的關鍵看起來像

com.example:anapp:R7 

「服務器」模塊的「MYAPP」項目中的關鍵是這樣的:

com.example:anapp_server:R7 

爲同一項目要使用Ant任務,我將屬性設置爲:

sonar.dynamicAnalysis=reuseReports 
sonar.modules=server,ui 
sonar.projectBaseDir=... 
sonar.projectKey=com.example\:myapp 
sonar.projectName=An Application 
sonar.projectVersion=7.0 

server.sonar.binaries=... 
server.sonar.dynamicAnalysis=reuseReports 
server.sonar.emma.reportPath=... 
server.sonar.java.coveragePlugin=emma 
server.sonar.java.source=1.6 
server.sonar.language=java 
server.sonar.libraries=... 
server.sonar.projectBaseDir=... 
server.sonar.projectKey=com.example\:anapp_server 
server.sonar.projectName=Server 
server.sonar.sources=... 
server.sonar.surefire.reportsPath=... 
server.sonar.tests=... 

ui.sonar.dynamicAnalysis=false 
ui.sonar.language=flex 
ui.sonar.projectBaseDir=... 
ui.sonar.projectKey=com.example\:anapp_ui 
ui.sonar.projectName=UI 
ui.sonar.sources=... 

項目的關鍵看起來與pom文件(「com.example:anapp:R7」);但是,服務器模塊鍵看起來像

com.example:anapp:com.example:anapp_server:R7 

這種差異會導致我們失去模塊的歷史,如果我發佈使用它們。

有沒有辦法讓我指定Ant屬性來生成與我們現有的Maven pom文件相同的密鑰?

我們的Sonar管理員告訴我他可以爲我們手動更換鑰匙,但這將是單調乏味且耗時的。如果我們必須這樣做,我們會訴諸於此,但是我希望我只是錯過了一些明顯的東西,這會爲我們節省很多工作。

回答

1

無法在標準SonarQube風格的按鍵中轉換Maven風格的按鍵。

所以你的管理員是對的,唯一的方法就是通過界面手動更新密鑰,如explained on the documentation

+0

謝謝您的確認。 –

相關問題