2013-08-01 61 views
0

我们运行多个站点并使用Maven构建它们的代码。Maven版本控制子模块依赖关系

每个站点都有自己的pom.xml,有几个子模块。

的B站点有从网站上A.子模块的依赖

站点B发现在.m2目录/库这种依赖性。

当前,站点B的pom.xml指定了依赖项名称和版本。

我们想知道如何处理子模块的版本在我们的开发和发布流程方面,以及相对于依赖于一个子模块从其他类似网站的网站B则到站点A

对于主站点,我们是否应该为每个快照和发布增加子模块的版本(保持所有版本号相同),或者如果子模块更改,只更改子模块版本?

除了通过沟通新版本,编辑站点B的pom.xml,更新依赖版本之外,还有什么方法可以告诉站点B有一个要查找的子模块的新版本吗?

我们尝试从站点B pom.xml中的依赖规范中删除版本,但后来发现它寻找与站点B的代码具有相同版本的依赖项/子模块。

我猜我们可以在Jenkins中设置一些更新pom.xml依赖关系,当版本更改时......但也许有更好的方法?

我刚看到这一点,这是非常有帮助的(例如,“释放”和“最新”)...

How do I tell Maven to use the latest version of a dependency?

+0

版本范围会按照链接中所述为您完成吗? –

回答

0

如果你读了整个Q &一个你联系,你会看到LATEST和RELEASE可能会有很多问题,其中第一个问题是Maven 3不再支持它们。给出的答案提及了versions-maven-pluginmaven-scm-plugin,如果这是您想要的,那些可能对自动更新有用。

如果你只是想知道什么时候发生了变化,版本插件会报告你可能作为site阶段的一部分运行以产生你想要的信息,然后你可以在时间正确时更新依赖关系。

<reporting> 
    <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>versions-maven-plugin</artifactId> 
      <version>1.3.1</version> 
      <reportSets> 
       <reportSet> 
        <reports> 
         <report>dependency-updates-report</report> 
         <report>plugin-updates-report</report> 
         <report>property-updates-report</report> 
        </reports> 
       </reportSet> 
      </reportSets> 
     </plugin> 
    </plugins> 
</reporting>