2013-07-29 73 views
30

我有一個我希望從編譯中排除的java源文件夾。Maven:排除編譯中的java文件

我的文件夾在qa/apitests/src/main/java/api/test/omi之下。

我在pom.xmlqa/bamtests下添加了下列條目,但它沒有幫助。除了我需要做的還有一個入口嗎?

<build> 
    <resources> 
     <resource> 
     <directory>src/main/java</directory> 
     <includes> 
      <include>**/*.properties</include> 
      <include>**/*.xml</include> 
      <include>**/*.xsd</include> 
      <include>**/*.csv</include> 
     </includes> 
     <excludes> 
<exclude>src/main/java/api/test/omi</exclude> 
     </excludes> 
     </resource> 
</build> 
+0

地理位置屬性是用於測試屬性'的src /測試/ resources''的src /主/ resources'。 – khmarbaise

+0

您在'qa/bamtests'中的項目如何在'qa/apitests'中找到源代碼? – 2013-07-29 10:04:20

+0

使用相同模式排除: **/test/omi/** boskop

回答

39

使用Maven Compiler Plugin

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <configuration> 
    <excludes> 
     <exclude>**/api/test/omi/*.java</exclude> 
    </excludes> 
    </configuration> 
</plugin> 
+0

這兩個主要的'*'代表什麼? –

+2

**表示'任何目錄'。 – 2015-06-11 14:41:43

+2

這個答案對我不起作用。看看這個http://stackoverflow.com/a/19713000/358013 – blueskin

2

如果要排除編譯Java源代碼,然後提到他們在Maven Compiler Plugin定義

<plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>2.0.2</version> 
     <configuration> 
      <excludes> 
       <exclude>src/main/java/api/test/omi/*.java</exclude> 
      </excludes> 
     </configuration> 
    </plugin> 
</plugins> 

資源插件只定義了所有資源,在您的最終神器捆綁。

33

添加一個排除爲其他答案提示爲我工作,除了路徑不應包括「的src/main/java目錄」:

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <configuration> 
     <excludes> 
      <exclude>com/filosync/store/StoreMain.java</exclude> 
     </excludes> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 
+0

刪除src/main /是如此真實! – Dudi

11

對於任何需要排除測試源<exclude>標籤會不行。您需要使用<testExclude>代替:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.3</version> 
    <configuration> 
     <testExcludes> 
     <testExclude>**/PrefixToExclude*</testExclude> 
     </testExcludes> 
    </configuration> 
    </plugin> 
1

頂部投票答案工作正常,但它不允許強制排除時/正在使用不排除那些排除類/班。

解決方法使用maven-antrun-plugin

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.8</version> 
    <executions> 
     <execution> 
      <phase>process-classes</phase> 
      <goals> 
       <goal>run</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <tasks> 
      <delete dir="target/classes/folder/to/exclude"/> 
     </tasks> 
    </configuration> 
</plugin>