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>
Другие вопросы по тегам