我的团队目前正在采用maven方法进行项目构建和依赖关系管理。
我是否需要创建快照repo并且发布repo是必要的,因为看起来pom文件的编写方式可以忽略快照?
<repository>
<releases>
<enabled>true</enabled>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>false</enabled>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
...
</repository>
我也对存储库管理的任何方法感兴趣,例如单独的每个项目的回购或许多小型存储库(第三方回购,内部回购)等等。
由于
答案 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