Maven:在编译中排除 java 文件

问题描述 投票:0回答:5

我有一个 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
5个回答
79
投票

使用 Maven 编译器插件

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

49
投票

添加排除,因为其他答案建议对我有用,但路径不应包含“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>

38
投票

对于任何需要排除 测试来源

<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>

3
投票

投票最高的答案效果很好,但当排除的类正在被未排除的类使用时,它不允许强制排除。

使用

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>

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>

资源插件仅定义要在最终工件中捆绑的所有资源。

© www.soinside.com 2019 - 2024. All rights reserved.