2013-03-26 28 views
2

我試圖微調我們的CI,我無法弄清楚如何避免PMD生成代碼的src根(不是在談論Android的R檔有)報告違規行爲:PMD排除沒有工作

我使用mvn help:effective-pom來驗證我的配置,POM看起來像我應該。它指向要排除的右側文件夾。

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-pmd-plugin</artifactId> 
    <version>${pmd-maven-plugin.version}</version> 
    <configuration> 
     <linkXref>false</linkXref> 
     <sourceEncoding>${project.build.sourceEncoding}</sourceEncoding> 
     <minimumTokens>${pmd.minimum.tokens}</minimumTokens> 
     <targetJdk>${pmd.target.jdk}</targetJdk> 
     <excludes> 
      <exclude>**/*R.java</exclude> 
      <exclude>**/*Manifest.java</exclude> 
      <excludeRoots> 
       <excludeRoot>${basedir}/src-gen</excludeRoot> 
      </excludeRoots> 
     </excludes> 

回答

2

看着在PMD plugin Usage doc page的例子(頁面的末尾)表明<excludeRoots>部分應該是直接<configuration>下,不低於<excludes>

如果這沒有幫助,也許試試<excludeRoot>**/src-gen/**</excludeRoot>

+3

沒錯。 excludeRoots是根配置,不是嵌套在排除中。此外Ant樣式**不起作用,最重要的是根必須是完整的,它似乎是以等於而不是startsWith實現的,例如,只有這樣的東西可以工作:(這是所有當前 3.6。) $ {basedir}/target/generated-sources/mdsal-binding vorburger 2016-07-07 13:36:54