SVN支持Maven Repo

时间:2011-08-10 15:10:54

标签: maven-2 maven maven-plugin maven-3

我们使用SVN作为Maven Repositary。我们知道不建议使用SVN支持的maven存储库,但由于组织内的限制,我们仍然需要使用它。目前使用的SVN支持的存储库部分实现。我们让开发人员在两个不同的地理位置工作。我们现在面临的问题是,只要开发人员向maven repo(svn存储库)添加工件,所有其他开发人员必须手动更新本地svn视图以在我们执行mvn clean package之前获取新添加的工件。

如果工件本地不存在,有没有办法自动将工件从svn maven存储库下载到本地存储?

SVN由Web服务器托管,因此仅使用HTTPS协议访问maven repositary。我们使用maven 2.2版本。

我尝试使用wagon插件将build构建输出(jar \ war)直接部署到scm。我们对部署构建输出不感兴趣。如果本地不存在,我们需要一个从svn maven repo自动下载工件的解决方案吗?

1 个答案:

答案 0 :(得分:2)

您没有提及您的SVN存储库如何向开发团队公开它的工件。如果它真的是一个Maven存储库(符合标准的Maven存储库布局),那么您可以在POM的“存储库”部分中指定它的URL。然后不再需要更新本地仓库。

我怀疑你检查过subversion的内容是不是Maven的存储库布局?如果将每个新版本的工件作为新文件签入,您将失去使用subversion的一个主要好处....

您正在描述任何Maven存储库管理器提供的功能,例如:Nexus。 我理解您不愿接受新的存储库技术,但像subversion这样的SCM系统主要用于跟踪文本文件的更改。

总之,如果你真的希望在循环中保持颠覆,我会建议两种选择之一:

  1. 使用subversion控制本地存储库的内容。 (第三方依赖项和开发人员生成的工件)
  2. 使用像Nexus这样的存储库管理器。让Nexus管理来自外部存储库的缓存内容,但将本地托管存储库的内容提交到Subversion。