我们有一个较大的独立(即不是Java EE)商业Java项目(10,000多个类,四个或五个SVN存储库,十个或二十个第三方库),它们正在切换到Maven。不幸的是,只有一名工程师(在一个分布在三个国家的十几个团队中)拥有Maven的任何经验,因此我们可以随时了解它。
在旧的蚂蚁做事方式中,我们:
现在,我们有一个充满工件的Maven存储库,以及依赖于Maven可以访问该存储库的构建过程。因此,如果我们需要复制我们实际发送给客户的内容,我们需要针对具有所有适当版本的Maven存储库进行构建。我想,如果在(某些版本的)(SVN控制的)POM文件中我们将所有依赖项设置为已发布的版本,这是可行的吗?
但它给了我们的发布工程师令人毛骨悚然的爬行,因为似乎没有任何办法:
对于发布版本,他的想法是使用本地文件系统作为存储库而不是WebDAV服务器,并将该本地存储库置于SVN控制之下。
我们的Maven经验丰富的工程师不喜欢这样 - 我猜是因为他不喜欢将二进制文件置于版本控制之下? - 并建议可能Nexus服务器的专业版可以解决破坏或破坏跟踪/恢复问题。
就个人而言,当我们还没有看到免费版本的任何好处时,我不高兴(对不起,Sonatype读者)为非免费版本系统支付钱,并且不能保证它会真正解决问题。
所以我们的选择似乎是:
那么:这里有正确的事吗?
答案 0 :(得分:1)
我不确定会得到一切,但我愿意:
没有必要将生成的工件置于版本控制之下(如果您在版本控制下有poms)。我没有看到使用本地文件系统而不是WebDAV的好处(这不提供更多安全性,您也可以保护WebDAV)。我不知道Nexus的商业版本会在这里解决什么。
答案 1 :(得分:0)
Nexus有一个设置可以防止您在发布存储库中破坏已经发布的人工制品。
对于一个大约十几人的团队,Nexus的免费版本应该足够了。