使用版本插件在新版本之后更新maven属性

时间:2012-06-14 06:41:18

标签: maven maven-plugin versions-maven-plugin

我在maven / jenkins中遇到多模块项目的问题。 例如,我的结构是这样的:

---ProjectA
----pom.xml
--------ModuleA
---------pom.xml
--------ModuleB
---------pom.xml

---ProjectB
-----pom.xml

例如,ModuleA对ProjectB中的某些内容具有依赖性,该内容在ModuleA的pom中定义,但版本仅定义为属性并且继承自ProjectA的属性部分。

我想自动化发布过程,以摆脱所有poms中所有版本的手动更新。因此,在发布ProjectB后,我将在ProjectA中查找所有引用。

修改 更准确我想释放ProjectB,它必须包含ProjectA的版本(因为依赖),而在ProjectA的新快照中,我想要引用最新的ProjectB。

如果要在同一个pom中指定依赖项和版本号,那么maven插件版本的功能非常好。你可以看到我的问题是(我猜测)当版本插件试图检查ProjectA的pom中的属性字段时,属性不能与依赖关联。我猜这个版本的插件会查看有效的pom,因为它可以发现ModuleA的pom中的依赖关系应该更新。它只是无法更新它,因为它没有在那里定义。

非常有必要寻求一种能够将我的财产保留在父母pom中的解决方案。

由于

1 个答案:

答案 0 :(得分:4)

确定。所以我认为我已经做了一些事情,但我会在这里张贴给别人看。

所以我认为问题在于autoLinkItem只搜索当前文件的链接,如果你想要一个属性与同一文件中没有指定的依赖关系相关联,那么可以明确告诉插件。 / p>

像这样:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>versions-maven-plugin</artifactId>
    <version>1.2</version>
    <configuration>
        <properties>
            <property>
                <name>basis.version</name>
                <dependencies>
                    <dependency>
                        <groupId>com.mycompany.app.basis</groupId>
                        <artifactId>ModuleBasis</artifactId>
                    </dependency>
                </dependencies>
            </property>
        </properties>
        <includeProperties>basis.version</includeProperties>
        <generateBackupPoms>false</generateBackupPoms>
        <allowSnapshots>true</allowSnapshots>
    </configuration>
</plugin>