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>
Ответы
Ответ 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>