我有以下maven-jar-plugin的根配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<excludes>
<exclude>com/company/project/staging/*</exclude>
</excludes>
</configuration>
</plugin>
我想用这个配置覆盖maven配置文件中的这个配置:
<profile>
<id>staging</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<includes>
<include>**/**</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
但是,配置文件配置不会覆盖根配置,因此包com/company/project/staging/仍然被排除在外。借助于
mvn帮助:所有配置文件
命令我可以清楚地看到我的配置文件处于活动状态。你知道为什么它不能像我期望的那样工作吗?任何帮助都是非常感谢的。
发布于 2018-06-04 14:16:24
当您的配置文件处于活动状态时,在合并的配置中同时使用包含和排除元素。要解决这个问题,您可以在配置文件的配置定义中添加一个空的<excludes>
元素,如果使用了combine.self="override"
修饰符,它将覆盖主配置中定义的排除。
看起来您想要做的就是消除配置文件中的排除,所以您可能也可以省略<include>
元素。
<profile> <id>staging</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <excludes combine.self="override" /> </configuration> </plugin> </plugins> </build> </profile>
发布于 2018-06-05 00:37:25
解决我的问题的方法是在里面使用一个列表,然后在我的配置文件中简单地展开它。例如根插件配置:
<includes>
<include>com/org/project/**</include>
</includes>
配置文件插件配置:
<includes>
<include>com/org/project/**</include>
<include>com/org/staging/**</include>
</includes>
https://stackoverflow.com/questions/50673038
复制相似问题