我在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中的解决方案。
由于
答案 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>