Maven存储库标准 - 版本和快照

时间:2014-03-21 08:16:24

标签: maven repository

我的团队目前正在采用maven方法进行项目构建和依赖关系管理。

我是否需要创建快照repo并且发布repo是必要的,因为看起来pom文件的编写方式可以忽略快照?

<repository>
  <releases>
   <enabled>true</enabled>       
   <checksumPolicy>warn</checksumPolicy>
  </releases>
  <snapshots>
   <enabled>false</enabled>      
   <checksumPolicy>fail</checksumPolicy>
  </snapshots>
  ...
 </repository>

我也对存储库管理的任何方法感兴趣,例如单独的每个项目的回购或许多小型存储库(第三方回购,内部回购)等等。

由于

2 个答案:

答案 0 :(得分:1)

单独存储库的主要原因是某些内容可能出错。如果您的快照存储库出现问题,您只需删除并重建它即可。没有汗水。另外,由于你将一直使用快照回购,你更有可能学习到你不应该以低成本完成的所有事情(犯了错误?只需删除它)。

凭借这种经验,您可以更好地准备好部署到发布回购。关于发布回购的最重要的事情是,在那里修复错误是非常困难的,有时是不可能的。例如,您不能简单地删除内容或重新上传它们,因为所有客户端都将忽略对已有工件的更改。因此,您始终只能添加到发行版回购中。

我对第三方回购也有很好的经验,因为他们将来自不同来源的东西分开。

为了避免在所有POM中拥有500个不同的存储库,您必须将它们移动到每个人都必须使用的共享父POM,或者使用像Nexus这样的repo服务器,它可以将一个存储库捆绑在一个URL。

这意味着:所有客户端都将使用单个URL 下载工件。当您部署到代理服务器时,您使用两个URL(一个用于快照,一个用于发布)。

注意:上面的代码段包含错误:<updatePolicy>never</updatePolicy>快照错误(and for releases, too

答案 1 :(得分:1)

通常,整个公司只有一个存储库管理器(例如nexus)。经理将管理快照,发布和第三方文物的不同回购。

存储库配置通常在父pom公司中设置。

存储库管理器还允许缓存来自中央和第三方存储库的文物,以节省品牌使用并缩短访问时间。

请参阅http://books.sonatype.com/nexus-book/reference/confignx-sect-manage-repo.html