2012-09-17 36 views
0

我正在构建一个多模块项目。项目结构喜欢:如何解决使用动态版本的依赖项的父POM

-Build 
     -Local 
     -POM.xml (Master) 

-Main Project 
    -Module A 

-Libs Project 
    -Libs Project A 

的利布斯项目A的POM从它的动态版本是父母的POM

<parent> 
    <groupId>com.myproject</groupId> 
    <artifactId>libs</artifactId> 
    <version>${release.version}</version> 
    </parent> 
    <!-- this POM --> 
    <groupId>com.myproject.libs</groupId> 
    <artifactId>http</artifactId> 
    <packaging>bundle</packaging> 
    <version>1.0.0</version> 

当我运行Maven构建和传递版本参数,以打造“模块A” ,maven找不到libs项目的POM。

原因:无法找到父:com.myproject:库项目: com.myproject.libs:HTTP:包:1.0.0项目 com.myproject.libs:HTTP:包:1.0.0

回答

2

现在停止

有许多的POM XPath中的位置,其中产权置换是永远不会以任何方式,是可用来工作的。

  • /project/parent/groupId
  • /project/parent/artifactId
  • /project/parent/version
  • /project/groupId
  • /project/artifactId
  • /project/version
  • /project/packaging

其原因是反应堆构建必须是确定性的。

当您尝试使用性能在这些地方会出现工作,换句话说,Maven会不会马上拍你过足了....但是当你尝试做任何事情上进一步Maven会亲切地拍你脚离开。

也许我们应该改变Maven最初的脚步......也许这会阻止人们认为在这些元素中进行属性扩展的支持。

相关问题