我有maven-jar-plugin的以下root配置:
<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 help:all-profiles
命令我可以清楚地看到我的个人资料是有效的。知道为什么它不起作用,因为我期望它工作?任何帮助都非常感谢。
答案 0 :(得分:1)
当您的个人资料处于活动状态时,合并配置中将使用包含和排除元素。要解决此问题,您可以在配置文件的配置定义中添加一个空的<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>
答案 1 :(得分:0)
The approach that solved my problem is to use a list inside and simply expand it in my profile config. E.g. Root plugin config:
<includes>
<include>com/org/project/**</include>
</includes>
Profile plugin config:
<includes>
<include>com/org/project/**</include>
<include>com/org/staging/**</include>
</includes>