DB-0.1-SNAPSHOT
Business-0.1-SNAPSHOT which depends on DB-0.1-SNAPSHOT
Web-0.1-SNAPSHOT which depends on Business-0.1-SNAPSHOT
执行所有版本时,所有版本都更新为0.1,但是准备失败,因为尚无依赖。一种解决方案是为每个模块创建不同的项目,并在使用
release:prepare
时一个一个释放它们。但是我不喜欢这个想法,因为它需要大量的配置和脚本。因此,我更喜欢使用聚合并使用单个命令发布所有模块,但是正如我在上面写的那样,当Release插件试图构建时,尚未在存储库中。
有任何方法可以管理这些项目间依赖关系? thanks.
upd:
即安装目标失败。
DB构建 - 确定(任何存储库中都没有快照和发行版本)business-失败(在存储库中找不到DB-0.1-Snapshot。但它甚至不应该在那里!)
我使用Maven 3.0.2并发布插件2.1
您的项目应仅在父(项目)中定义一个版本。并让所有其他模块都有父母关系。这意味着您没有聚合。您具有多模型构建。
DB-0.1
这将解决您的问题(可能是您可以在此处以一个例子为例
)。
对于多模块项目,当它因儿童快照依赖性而失败时,请尝试 发行:清洁发行:准备发行版:perform -dignoresnapshots =true
Hope它有帮助
versions:use-releases
您可以看到,Portlet App模块是构建的,服务是一个依赖项,这是一个.jar文件,它包含接口以及其他服务以供服务工作。
通过方式,我使用不同版本的模块在项目中做到了这一点。我发现了一篇有趣的文章,讨论了这种做法:Business-0.1
那么,如何使服务依赖关系构建和部署以使用它?
well,解决方案是使用Maven-Release-Plugin中的配置,该配置使Maven可以在任何项目中的DB-0.1
阶段运行特定的目标。我所做的就是在父pom.xml(服务层)中的Maven-Release-Plugin声明中添加此配置:
Maven能够用我们首选的版本编号部署父母和每个孩子模块(将要求您输入它们)。
Summarized答案和建议:尝试使用
Service Layer
|-pom.xml (version 1.12.0-SNAPSHOT)
|-Service Portlet
| |-pom.xml (version 1.16.0-SNAPSHOT)<---
|-Service | Artifact dependency
| |-pom.xml (version 1.5.0-SNAPSHOT)-----
mvn release:prepare
和
mvn:perform
应按照订单部署份量和模块。
我希望这至少在5年后激发了类似情况的某人。