我有一个我最近“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安装到我的本地存储库中解决了这个问题。
答案 0 :(得分:0)
您做的第一个失败是不对您定义pluginManagement区域的父pom进行版本控制。这是您必须将您喜欢的pom.xml用于父级的第一步。其次,您必须将有关VCS的信息放入该pom的scm区域。清理完所有内容后,必须执行mvn发布:准备发布:执行父pom。之后,您可以将其用作其他项目中的父级。此外,您应该在父pom中定义distributionManagement区域。