2011-12-14 68 views
0

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

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

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

mvn release:prepare运行正常,当我运行mvn release:perform行家检查了相应的标签,从我的本地git仓库到目标/结帐文件夹,并尝试运行部署目标。
但是,构建失败,并显示错误消息,它无法找到我的库pom文件中定义的父pom文件。
我认为这与maven尝试在目标文件夹中找到父文件夹并且在那里不可用这一事实有关。
有没有简单的方法如何解决这个问题?

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

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

回答

0

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

+0

父pom是否必须与我的库在同一个VCS中? 我有几个不相关的库应该使用这个作为父(公司)POM和他们每个人都在一个单独的github存储库。我是否必须将父pom放入每个存储库? 对于图书馆的发布,我是否只需要在父pom上调用发布插件,或者我可以在图书馆的pom上进行发布吗? – 2011-12-14 15:00:01