一尘不染

如何为Maven设置Archiva内部+快照存储库?

java

我们正在尝试将Archiva用作中央和其他外部存储库的Maven代理,以及用作我们的工件的快照存储,这些工件由Hudson从SVN自动构建并安装到快照存储库。

我无法将Maven客户端设置为同时使用内部存储库和快照存储库。我的项目有一些外部依赖项(例如log4j),可以从Archiva内部存储库中正确下载。另外,我的项目还依赖于自己的项目,该项目的工件已经构建并安装到快照存储库中。但是,如果我尝试构建项目,Maven将找不到我的快照工件。

我的配置文件最初具有以下设置:

<mirror>
  <id>company-internal</id>
  <name>Company's Archiva - Internal Repository</name>
  <url>http://www.mycompany.hu/archiva/repository/internal</url>
  <mirrorOf>*</mirrorOf>
</mirror>

然后我添加了以下内容:

<mirror>
 <id>company-snapshots</id>
 <name>Company Archiva - Snapshots Repository</name>
 <url>http://www.mycompany.hu/archiva/repository/snapshots</url>
 <mirrorOf>apache.snapshots</mirrorOf>
</mirror>

但是,Maven不会在构建时尝试查找snaphot存储库。我做错什么了?顺便说一句,我并没有真正达到<mirrorOf>元素的目的。我尝试将内部镜像设置替换为,central但这仍然无法解决我的问题。


阅读 191

收藏
2020-12-03

共1个答案

一尘不染

经过反复试验,以下配置对我有用。在这里,我使用了默认的archiva配置- internal保存发行版,并且snapshots仅保存内部快照。

从本质上讲,与关系不同,我们需要两个单独的<mirror><repository>声明-
一个用于普通工件,另一个用于快照工件。

<mirrors>
    <mirror>
        <id>archiva</id>
        <mirrorOf>*</mirrorOf>
        <url>http://localhost:8080/archiva/repository/internal</url>
    </mirror>
    <mirror>
        <id>snapshots</id>
        <mirrorOf>snapshots</mirrorOf>
        <url>http://localhost:8080/archiva/repository/snapshots</url>
    </mirror>
</mirrors>
<profiles>
    <profile>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <repositories>
            <repository>
              <id>internal</id>
              <name>Archiva Managed Internal Repository</name>
              <url>http://localhost:8080/archiva/repository/internal/</url>
              <releases>
                <enabled>true</enabled>
              </releases>
              <snapshots>
                <enabled>false</enabled>
              </snapshots>
            </repository>
            <repository>
              <id>snapshots</id>
              <name>Archiva Managed Internal Repository</name>
              <url>http://localhost:8080/archiva/repository/snapshots/</url>
              <releases>
                <enabled>false</enabled>
              </releases>
              <snapshots>
                <enabled>true</enabled>
              </snapshots>
            </repository>
        </repositories>
    </profile>
</profiles>
2020-12-03