我們希望將使用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管理員告訴我他可以爲我們手動更換鑰匙,但這將是單調乏味且耗時的。如果我們必須這樣做,我們會訴諸於此,但是我希望我只是錯過了一些明顯的東西,這會爲我們節省很多工作。
謝謝您的確認。 –