Maven - 从特定工件中排除资源

时间:2012-07-08 14:24:00

标签: maven resourcebundle

我是maven的新手,发现自己陷入了困扰我的事情。

我有一个多模块项目,我的父pom.xml包含以下插件:

    <plugin>
            <artifactId>maven-remote-resources-plugin</artifactId>
            <executions>
                <execution>
                    <id>process-remote-resources</id>
                    <goals>
                        <goal>process</goal>
                    </goals>
                    <configuration>
                        <resourceBundles>
                            <resourceBundle>
                                ${shared.resources.version}
                            </resourceBundle>
                        </resourceBundles>
                        <includes>
                            <include>version.info</include>
                        </includes>
                    </configuration>
                </execution>
            </executions>
        </plugin>

此代码生成一个version.info文件,并将它们放在我的每个模块jar文件中。 我想知道是否可以使这个代码只为3个模块中的2个模块创建version.info文件。

例如,如果我有模块:A,B和C. 我希望version.info文件在A和B中但不在C中。 我希望我能够很好地解释自己,如果没有,请告诉我。

提前致谢, MENY

1 个答案:

答案 0 :(得分:1)

最佳解决方案是将此插件配置移动到父pom的project / build / pluginManagement元素:

<pluginManagement>
    <plugins>
        <plugin>
            <artifactId>maven-remote-resources-plugin</artifactId>
            <executions>
                <execution>
                    <id>process-remote-resources</id>
                    <goals>
                        <goal>process</goal>
                    </goals>
                    <configuration>
                        <resourceBundles>
                           <resourceBundle>
                            ${shared.resources.version}
                           </resourceBundle>
                        </resourceBundles>
                        <includes>
                           <include>version.info</include>
                        </includes>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</pluginManagement>

并在模块poms中的project / build / plugins中调用它:

<plugins>
    <plugin>
        <artifactId>maven-remote-resources-plugin</artifactId>
    </plugin>
</plugins>

如果不允许对父pom进行重构,则使用skip设置为true覆盖插件配置,或使用none阶段禁用不需要的插件调用: http://thomaswabner.wordpress.com/2010/02/16/howto-disable-inherited-maven-plugin/