2014-07-18 25 views
1

我有我的pom.xml中的以下配置來檢查PMD違規:如何讓PMD在Maven構建的開始而不是結束時運行?

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-pmd-plugin</artifactId> 
    <version>${pmd.version}</version> 
    <configuration> 
     <linkXRef>true</linkXRef> 
     <sourceEncoding>UTF-8</sourceEncoding> 
     <minimumTokens>100</minimumTokens> 
     <targetJdk>1.7</targetJdk> 
    </configuration> 
    <executions> 
     <execution> 
      <goals> 
       <goal>check</goal> 
       <goal>cpd-check</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

當我使用指令mvn clean install構建中,PMD檢查運行作爲構建過程的最後一步。相反,我希望PMD檢查作爲構建的第一步來運行。

有誰知道我該怎麼做到這一點?

+0

指定執行中的另一個階段? –

回答

1

謝謝您的回答@JamesB和@PetrMensik讓我瞭解POM內階段元素。它幫助我解決了我的問題。我終於塵埃落定此:

<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-pmd-plugin</artifactId> 
<version>${pmd.version}</version> 
<configuration> 
    <linkXRef>true</linkXRef> 
    <sourceEncoding>UTF-8</sourceEncoding> 
    <minimumTokens>100</minimumTokens> 
    <targetJdk>1.7</targetJdk> 
</configuration> 
<executions> 
    <execution> 
     <phase>compile</phase> 
     <goals> 
      <goal>check</goal> 
      <goal>cpd-check</goal> 
     </goals> 
    </execution> 
</executions> 
</plugin> 

我使用的相:編譯,是我有很多在我的項目的測試,其佔用了大量的時間來執行的原因。而且,在所有測試結束時,等待這些測試完成並被通知有關PMD違規的情況令人非常惱火。測試前我需要一些東西。因此,我結算了編譯

歡迎提出進一步的建議。 :)

0

您需要將此插件的執行掛鉤到不同的Maven生命週期階段(validation作爲默認生命週期中的第一個階段)。

<executions> 
    <execution> 
     <phase>validate</phase> 
     <goals> 
      <goal>check</goal> 
      <goal>cpd-check</goal> 
     </goals> 
    </execution> 
</executions> 

參考查看可用的Maven階段的這個list

5

將相元素添加到您的POM中。

<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-pmd-plugin</artifactId> 
<version>${pmd.version}</version> 
<configuration> 
    <linkXRef>true</linkXRef> 
    <sourceEncoding>UTF-8</sourceEncoding> 
    <minimumTokens>100</minimumTokens> 
    <targetJdk>1.7</targetJdk> 
</configuration> 
<executions> 
    <execution> 
     <phase>validate</phase> 
     <goals> 
      <goal>check</goal> 
      <goal>cpd-check</goal> 
     </goals> 
    </execution> 
</executions> 
</plugin> 

的驗證階段是Maven的生命週期的第一個階段:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

相關問題