2011-08-10 49 views
1

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

有没有办法从SVN Maven仓库神器自动下载到本地回购,如果产品无法在本地存在?

SVN由一个web服务器托管,所以maven repositary只能使用HTTPS协议访问。我们使用maven 2.2版本。

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

回答

2

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

我怀疑你签入subversion的不是Maven存储库布局吗?如果将每个新版本的工件作为新文件签入,那么您将失去使用Subversion的主要优点之一...

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

总之,如果你真的想保持颠覆环路我建议两个选项之一:

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

我们维持第三方的依赖和在SVN支持行家回购少数文物。每当有新的依赖关系添加到项目时,所有需要手动更新svn本地副本。 SVN maven repo通过https访问。 – Arunkumar

+0

我们在SVN支持的maven回购中维护第三方依赖关系和少量工件。所有的依赖项和工件都被检入,并且默认的目录布局是maven期望的。试图添加svn maven repo url在所需的凭据存储库标记,但同时建立它给错误找不到资源错误。 SVN maven repo通过https访问。我们目前还没有使用nexus或ar​​tifactory存储库的计划。如果依赖不存在,需要一个解决方案来自动更新svn maven仓库本地副本(第三方二进制文件)。 – Arunkumar

+0

如果您不准备使用Maven存储库管理器,也许您会更好地从完全切换Maven的方式提供服务。我可以建议使用常春藤插件ANT来管理依赖关系。有趣的是常春藤有一个解析器,可以让你在Subversion中存储工件。请参阅http://code.google.com/p/ivysvn/ –