0

我是 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 中。我希望我能很好地解释自己,以防万一,请告诉我。

提前致谢, 梅尼

4

1 回答 1

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插件/

于 2012-07-09T15:24:34.640 回答