Подтвердить что ты не робот

Maven: исключение java файлов в компиляции

У меня есть папка из 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>
4b9b3361

Ответ 1

Используйте Maven Compiler Plugin.

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

Ответ 2

Добавление исключения, поскольку другие предложенные мной ответы работали, за исключением того, что путь не должен включать "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>

Ответ 3

Для тех, кому необходимо исключить теги тегов <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>

Ответ 4

Если вы хотите исключить источники 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>

Плагин ресурсов определяет только то, что все ресурсы собираются в ваш последний артефакт.

Ответ 5

Ответ на верхний голос работает отлично, но это не позволяет исключить исключение, когда исключенный класс/классы используются/используются не исключенными.

Обходной путь с использованием 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>