当前位置: 首页 > 面试题库 >

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

狄奕
2023-03-14
问题内容

我们正在尝试将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但这仍然无法解决我的问题。


问题答案:

经过反复试验,以下配置对我有用。在这里,我使用了默认的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>


 类似资料:
  • 我一直在设置一个Apache Archiva实例,作为Maven Central的代理和捕获我们的开发快照。我已经设法设置了代理,我可以将工件部署到Archiva快照存储库,但是我不能从快照存储库中提取工件以用于其他项目。 pom.xml相关部分(附属项目) 我的~/。m2/设置。xml 当我构建依赖项目时,我不能引用类(公共访问)。 只是要注意,我可以浏览快照存储库,我知道war文件在那里。 有

  • 我正在开发一个服务器,它承载一个maven repo,并且面临一个问题,即如果快照不是特定格式,maven会错误地解析快照版本。在查找版本规则之后,我知道限定符可以是任何字符串,所以我希望maven能够下载带有任何限定符的依赖项。然而,这与我的经验不符。 回购协议具有以下文件夹结构(假设maven项目): 如果我尝试解析a. b. c. d-SNAPSHOT,这很好。我可以在maven日志中看到它

  • 我想将jar发布到Nexus快照存储库。 如果你知道如何实现,我很想知道。 我将从詹金斯的工作中发布jar。 我想发布到快照存储库,但我无法调查/实现各种事情。 根据我的研究,似乎已经有了下面的Jenkins插件 null 卷曲时的错误信息如下所示。 谢谢你。

  • 问题内容: 我一直在开发一些Node应用程序,并且一直在寻找一种存储与部署相关的设置的良好模式。在Django世界(我来自哪里)中,通常的做法是创建一个包含标准设置(时区等)的文件,然后包含一个用于部署特定设置的文件。与哪个数据库进行通信,什么Memcache套接字,管理员的电子邮件地址等等。 我一直在寻找Node的类似模式。只需一个配置文件就可以了,因此它不必与中的其他所有文件一起使用,但是我发

  • 我在POM. xml中引用了一个存储库来将ojdbc.jar添加到我的项目中,但是Maven(我使用STS插件)一直告诉我它找不到jar。 我在下面显示了我的存储库和jar依赖关系xml. 有人知道为什么找不到这个罐子吗?这是我的POM。xml设置不正确? 注意vaadin回购工作正常,因为vaadin罐被正确地添加到我的项目中。 下面是http://mvnrepository.com/artif

  • 在我的应用程序中,有一个由sqlite创建的数据库。我想将数据库复制到下载文件夹。我使用的是不同的方式,但并没有在真实的设备上工作(它说拒绝访问目录),可能是它想要根手机。请帮助,我想提供一个访问权限,以便用户可以从下载文件夹获取数据库。 请注意,我使用的是最新版本的android studio。 在下面给定的DatabaseHelper类中。在exportDB()方法中,我要实现这一点。