2013-10-24 31 views
2

我更多關於如何向MAVEN添加更多源文件夾的討論,以及我選擇使用MOJO的build-helper-maven-plugin插件。該的pom.xml看起來是這樣的:使用MOJO build-helper-maven-plugin將更多的源文件夾添加到MAVEN

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>my.maven.tests</groupId> 
    <artifactId>helper</artifactId> 
    <version>1.0</version> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>build-helper-maven-plugin</artifactId> 
     <version>1.8</version> 
     <executions> 
      <execution> 
      <id>add-gen-source</id> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>add-source</goal> 
      </goals> 
      <configuration> 
       <sources> 
       <source>src-gen/gen/java</source> 
       </sources> 
      </configuration> 
      </execution> 
      <execution> 
      <id>add-extra-source</id> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>add-source</goal> 
      </goals> 
      <configuration> 
       <sources> 
       <source>src/extra/java</source> 
       </sources> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.1</version> 
     <configuration> 
      <source>1.6</source> 
      <target>1.6</target> 
      <encoding>UTF-8</encoding> 
      <includes> 
      <include>src/main/java/**/*.java</include> 
      <include>src-gen/gen/java/**/*.java</include> 
      <include>src/extra/java/**/*.java</include> 
      </includes> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

使用命令mvn clean compile構建完成精細,沒有錯誤,但不會產生類。

我相信我犯了錯誤,但我無法弄清楚。

回答

5

問題是您的includes maven-compiler-plugin的配置。 maven-compiler-plugin將自動獲取項目中配置的所有源文件夾 - 您無需通過includes標籤來定義它們。

所以你的情況就會自動拾取src/main/java(標準的Maven源位置)和兩個已配置的構建輔助性Maven的插件添加,src-gen/gen/java & src/extra/java

您只需刪除includes部分即可運行。因此,Maven的編譯器插件,在POM,簡直是:

... 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.1</version> 
    <configuration> 
     <source>1.6</source> 
     <target>1.6</target> 
     <encoding>UTF-8</encoding> 
    </configuration> 
</plugin> 
... 
+0

HATS OFF! 這是解決方案,謝謝DB5。 –

+0

@ user1996280,很高興它解決了你的問題。 – DB5

0

而且,請注意,源文件夾需要遵循的Maven文件結構約定(即,如果您的源文件夾直接包含這是不行的你的.java文件:它需要包含一個主文件夾和/或測試文件夾)。

相關問題