Maven安装目标不会为模块生成pom

时间:2015-04-13 10:10:36

标签: maven

我正在运行一个多模块maven项目并且出现意外行为。我第一次见到这个......

我的父模块配置install插件,定义其classifier

        <plugin>
            <artifactId>maven-install-plugin</artifactId>
            <configuration>
                <generatePom>true</generatePom>
                <classifier>${env}</classifier>
            </configuration>
        </plugin>
        <!-- ... -->
        <modules>
            <module>webapp-formation</module>
            <module>db-formation</module>
        </modules>

但是当我正在运行mvn install时,我的模块不会生成.pom个文件。只有我的父级与我的存储库中的.pom文件相关联。因此,尝试在Archiva上浏览我的模块的工件(当然在运行mvn depoy之后!)它只是失败了。我可以浏览父母而不是孩子。 所以...我需要将未记录的属性generatePom添加到我的插件配置中以生成生成的.pom个文件 - 实际上复制的是一个更好的词 - 我的模块。 - 我说的是未记录的属性,因为此属性仅记录install-file目标,而不是默认运行的目标。 install目标不期望该属性...... 当然,如果我没有配置我的install插件 - 所以不配置分类器 - 我没有问题,所有.pom文件都是正确生成的。

对你们来说,这是正常行为吗?你看过的东西?或者我应该提交一个错误?

谢谢, 奥利弗。

1 个答案:

答案 0 :(得分:0)

您描述为未记录的属性是完全错误的,因为属性在目标库上是特定的,这意味着给定的配置不会更改任何内容,因为generatePom属性仅对install-file有效目标。所以你可以删除它。

一般来说,这样的配置没有意义,因为如果你有不同的环境,你应该采用不同的方式。刚刚删除了<classifier>${env}</classifier>的配置,并尝试通过以下方式进行部署:

mvn clean deploy