maven发布:表演和父母pom

时间:2011-12-14 14:12:08

标签: maven-2 maven-release-plugin

我有一个我最近“mavenized”的库,并放入一个本地git存储库 为了锁定一些插件版本,我创建了一个简单的父pom,它通过 pluginManagement 定义插件版本(父pom文件签入任何SCM存储库)。我在我的库pom文件中指定父pom:

 <parent>
    <groupId>org.my.company</groupId>
    <artifactId>superpom</artifactId>
    <version>1</version>
 </parent>

我使用默认目录结构。 当我尝试使用发布插件执行发布时,我遇到了一个问题。

mvn release:prepare运行正常,但是当我运行mvn release:perform时,maven会从我的本地git存储库中检出相应的标记到 target / checkout 文件夹并尝试运行部署目标。
但是,构建失败并显示错误消息,指出它无法找到我的库pom文件中定义的父pom文件 我认为这与maven试图在目标文件夹中找到父pom文件这一事实有关,但在那里它不可用。
有一种简单的方法可以解决这个问题吗?

更新
我有多个不相关的GWT库,它们应该共享公共父公司的pom文件,以便指定插件版本 父pom仅用于定义一些默认版本,并且不包含任何模块定义,因为所有GWT库都是不相关的 GWT库非常简单,除了默认库之外没有任何其他库的真正依赖(gwt,junit)

UPDATE2 : 我通过在我的superpom文件夹中运行mvn install将superpom安装到我的本地存储库中解决了这个问题。

1 个答案:

答案 0 :(得分:0)

您做的第一个失败是不对您定义pluginManagement区域的父pom进行版本控制。这是您必须将您喜欢的pom.xml用于父级的第一步。其次,您必须将有关VCS的信息放入该pom的scm区域。清理完所有内容后,必须执行mvn发布:准备发布:执行父pom。之后,您可以将其用作其他项目中的父级。此外,您应该在父pom中定义distributionManagement区域。