Maven:在编译中排除java文件

con*_*ner 43 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>
Run Code Online (Sandbox Code Playgroud)

小智 55

使用Maven编译器插件.

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <excludes>
      <exclude>**/api/test/omi/*.java</exclude>
    </excludes>
  </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

  • 对我来说它也不起作用,我不得不删除`src/main/java`部分......看起来像一个相对路径问题.有人可以详细解释一下吗? (5认同)
  • `**'表示'任何目录'. (3认同)
  • 这个答案对我不起作用.看看这个http://stackoverflow.com/a/19713000/358013 (2认同)
  • 要排除测试,请参阅 @michal-kordas 在 http://stackoverflow.com/a/32531306/517134 上的回答,它对我有用 (2认同)

小智 41

添加一个排除作为建议的其他答案对我有用,除了路径不应该包括"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>
Run Code Online (Sandbox Code Playgroud)


Mic*_*das 22

对于任何需要排除测试源的人来说, <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>
Run Code Online (Sandbox Code Playgroud)