我有一个 java 源文件夹,我希望将其从编译中排除。
我的文件夹位于
qa/apitests/src/main/java/api/test/omi
下。
我在
pom.xml
下的qa/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>
使用 Maven 编译器插件。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/api/test/omi/*.java</exclude>
</excludes>
</configuration>
</plugin>
添加排除,因为其他答案建议对我有用,但路径不应包含“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>
对于任何需要排除 测试来源
<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>
投票最高的答案效果很好,但当排除的类正在被未排除的类使用时,它不允许强制排除。
使用
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>
如果您想从编译中排除 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>
资源插件仅定义要在最终工件中捆绑的所有资源。