我有一个maven项目,在其中我定义了一个包括自定义maven-resource-plugin
配置的基于profile
的构建。
...
<profiles>
<profile>
<id>docker</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>resources</id>
<phase>generate-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/classes</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>false</filtering>
<excludes>
<exclude>log4j2*.xml</exclude>
<exclude>docker/*</exclude>
</excludes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
...
现在,当我执行例如mvn compile -P docker
时,我可以看到资源插件被执行了两次。
资源信息]-maven-
-plugin:3.1.0:复制资源(资源)@mma-访问管理-身份验证服务器
信息使用'UTF-8‘编码来复制过滤的资源。
信息正在复制%2资源
INFO - maven-resources-plugin:3.1.0:resources (default-resources) @ mma-access-management-auth-server
信息使用'UTF-8‘编码来复制过滤的资源。
信息复制5个资源
是这样的吗?我真的必须排除默认构建的所有资源,以避免通过default-resources再次复制它们吗?
发布于 2018-10-08 00:58:22
不要再次将插件绑定到生成资源阶段。当您仅使用配置标签时,您可以更改默认执行的配置。
...
<profiles>
<profile>
<id>docker</id>
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>false</filtering>
<excludes>
<exclude>log4j2*.xml</exclude>
<exclude>docker/*</exclude>
</excludes>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
...
https://stackoverflow.com/questions/52690507
复制相似问题