我如何使用SVN作为Maven存储库

时间:2011-12-09 10:05:54

标签: maven build continuum

我正在处理具有多个依赖项的项目。大多数依赖项都可以在我们的集中式maven存储库中找到。我的项目包括一些JAR,这些JAR只针对我的应用程序而且在我们的Maven仓库中无法使用。由于某些政策/限制,我无法将这些罐子部署到我们的maven存储库。

当我在我的本地存储库(即UserHome / .m2 / repository)中安装这些jar并编译代码时,它正常工作。

现在我想在SVN中使用这些依赖项,以便我们可以使用Continuum构建应用程序包。(我们无法从Continuum服务器引用本地依赖项。)

为了实现这些,我从.m2 / repository复制了本地安装的依赖项,并在SVN中提交了它。然后我在pom.xml中声明了存储库,如..

<repositories>
  <repository>
      <id>repo.pu</id>
      <name>repo.pu</name>
      <url>https://URL/migration2/APP1/src/main/lib/</url>
      <layout>default</layout>
  </repository>
</repositories>

现在从上面的repo使用依赖,我添加了像......

这样的代码
<dependencies>
<dependency>
  <groupId>repo.pu</groupId>
  <artifactId>Ptestval</artifactId>
  <version>1.0</version>
</dependency>
</dependencies>

当我输入mvn时,验证我收到以下错误..

[ERROR] Failed to execute goal on project APP1: Could not resolve dependencies f
or project fileservices.migration2:APP1:jar:1.0: Failed to collect dependencies
for [repo.pu:Ptestval:jar:1.0 (compile)]: Failed to read artifact descriptor for
repo.pu:Ptestval:jar:1.0: Could not transfer artifact repo.pu:Ptestval:pom:1.0
from/to repo.pu (https://URL/migration2/APP1/src/main/lib/): Access denied to: 
https://URL/migration2/APP1/src/main/lib/repo/pu/Ptestv
al/1.0/Ptestval-1.0.pom -> [Help 1]

请问有人帮我解决这些问题吗?

编辑:我创建了一个类似..

的存储库
    <repositories>
       <repository>
       <id>repo.pu</id>
       <name>repo.pu</name>
       <url>https://SVNUserName:SVNPassword@SVN_URL/BaseProj/ProjA/src/main/lib</url> 
       <layout>default</layout>
       </repository>
     </repositories>

这种技术在我的个人笔记本电脑上完美运行。 Maven从repo下载列出的依赖项。

但是当我在公司网络上的项目中尝试使用相同的东西时,它却无法运行..它给出了我在使用这种方法之前得到的相同错误。

有人能帮帮我吗?会有什么问题?这是网络问题吗?

2 个答案:

答案 0 :(得分:3)

设置像Nexus这样的存储库管理器,不要滥用Subversion来处理它不适用的东西。遗憾的是,这已在Google Code中完成。

答案 1 :(得分:1)

您必须将项目配置为使用wagon-scm。 见http://maven.apache.org/wagon/wagon-providers/wagon-scm/usage.html