Maven - исключить папку из сборки
Попытка изгнать папку src/main/resources/scripts/
из моей сборки, но следующее не работает:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>src/main/resources/scripts/</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<excludes>
<exclude>src/main/resources/scripts/</exclude>
</excludes>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
Есть идеи?
3 ответа
Решение
Вместо этого попробуйте:
<exclude>scripts/**</exclude>
Исключение основано на каталоге, поэтому ваша конструкция будет исключать
src/main/resources/src/main/resources/scripts
У меня была похожая проблема, и я нашел следующие проблемы:
- У вас может быть родительский pom, который уже определяет конфигурацию для
maven-compiler-plugin
, Для этого добавьтеcombine.self="override"
кconfiguration
тег. См. Maven: возможно ли переопределить конфигурацию плагина, уже определенного для профиля в родительском POM? - Кажется, что плагин игнорирует исключения, если ему нужны исключенные классы для компиляции: убедитесь, что вы не ссылаетесь на исключенные классы из других классов, которые будут скомпилированы. Например, если вы исключите
Foo.java
, но вBar.java
выimport Foo;
это будет (попытаться) скомпилироватьFoo.java
СкомпилироватьBar.java
,
Например:
<profiles>
<profile>
<id>myId</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration combine.self="override">
<excludes>
<exclude>**/some/full/directory/*</exclude>
<exclude>**/some/single/File.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profiles>
<profile>
<id>readBuild</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration >
<excludes>
<exclude>**/com/pyramid/controllers/EntitlementWriteController.java</exclude>
<exclude>**/com/pyramid/controllers/ProductWriteController.java</exclude>
</excludes>
<testExcludes>
<testExclude>**/com/pyramid/controllers/EntitlementWriteControllerTest.java</testExclude>
<testExclude>**/com/pyramid/controllers/ProductWriteControllerTest.java</testExclude>
</testExcludes>
</configuration>
</plugin>
</plugins>
<directory>yourDirectory</directory>
</build>
</profile>
Это очень просто, и вам не нужно добавлять другой плагин:
https://maven.apache.org/plugins/maven-resources-plugin/examples/include-exclude.html
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>application.properties</exclude>
</excludes>
</resource>
</resources>
</build>