我更多关于如何向MAVEN添加更多源文件夹的讨论,我选择使用MOJO的 build-helper-maven-plugin 插件。 pom.xml 如下所示:
<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
,构建完成正常,没有错误,但不会生成任何类。
我确信我做错了但我无法弄明白。
答案 0 :(得分:7)
问题是maven-compiler-plugin的includes
配置。 maven-compiler-plugin将自动获取项目中配置的所有源文件夹 - 您无需通过includes
标记定义它们。
因此,在您的情况下,它将自动选择src/main/java
(标准maven源位置)和您已配置要添加的build-helper-maven-plugin的两个,src-gen/gen/java
&amp; src/extra/java
。
您只需删除includes
部分,您的构建就可以了。所以你的pom中的maven-compiler-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>
</configuration>
</plugin>
...
答案 1 :(得分:0)
另外,请注意源文件夹需要遵循maven文件结构约定(即如果源文件夹直接包含.java文件,则无法运行:它需要包含main和/或test文件夹)。