当前位置: 首页 > 知识库问答 >
问题:

从Archiva快照存储库中提取快照依赖项的问题

厉坚
2023-03-14

我一直在设置一个Apache Archiva实例,作为Maven Central的代理和捕获我们的开发快照。我已经设法设置了代理,我可以将工件部署到Archiva快照存储库,但是我不能从快照存储库中提取工件以用于其他项目。

pom.xml相关部分(附属项目)

<project>
  <!-- Excluded detail -->
  <dependency>
    <groupId>uk.abc</groupId>
    <artifactId>ABC</artifactId>
    <version>1.0-SNAPSHOT</version>
    <type>war</type>
  </dependency>
  <!-- Excluded detail -->
  <distributionManagement>
    <repository>
        <id>archiva.snapshots</id>
        <name>Snapshot Repository</name>
        <url>https://xxx.xxx.xxx.xxx/archiva/repository/snapshots</url>
    </repository>
  </distributionManagement>
  <!-- Excluded detail -->
</project> 

我的~/。m2/设置。xml

<settings>
  <servers>
    <server>
      <id>archiva.snapshots</id>
      <username>username</username>
      <password>xxx</password>
    </server>
    <server>
      <id>archiva.internal</id>
      <username>username</username>
      <password>xxx</password>
    </server>
  </servers>
  <mirrors>
    <mirror>
        <id>archiva.internal</id>
        <mirrorOf>central</mirrorOf>
        <url>https://xxx.xxx.xxx.xxx/archiva/repository/internal</url>
    </mirror>
    <mirror>
        <id>archiva.snapshots</id>
        <mirrorOf>snapshots</mirrorOf>
        <url>https://xxx.xxx.xxx.xxx/archiva/repository/snapshots</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
        <id>default</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <repositories>
            <repository>
              <id>archiva.internal</id>
              <name>Archiva Managed Internal Repository</name>
              <url>https://xxx.xxx.xxx.xxx/archiva/repository/internal/</url>
              <releases>
                <enabled>true</enabled>
              </releases>
              <snapshots>
                <enabled>false</enabled>
              </snapshots>
            </repository>
            <repository>
              <id>archiva.snapshots</id>
              <name>Archiva Managed Internal Repository</name>
              <url>https://xxx.xxx.xxx.xxx/archiva/repository/snapshots/</url>
              <releases>
                <enabled>false</enabled>
              </releases>
              <snapshots>
                <enabled>true</enabled>
              </snapshots>
            </repository>
        </repositories>
    </profile>
  </profiles>
</settings>

当我构建依赖项目时,我不能引用类(公共访问)。

只是要注意,我可以浏览快照存储库,我知道war文件在那里。

有什么想法吗?

共有2个答案

曹奇文
2023-03-14

您可能没有正确激活配置文件

在设置中的配置文件之前。比如说

<activeProfiles>
    <activeProfile>default</activeProfile>
</activeProfiles>

记住这一点关于activeByDefault

除非使用前面描述的方法之一激活同一POM中的另一个配置文件,否则此配置文件将自动对所有构建处于活动状态。当POM中的配置文件在命令行上或通过其激活配置文件激活时,默认激活的所有配置文件都会自动停用。

如果要确认这是否是问题所在,请运行help:active profiles

郎慎之
2023-03-14

事实证明,您不能使用“war”依赖类型并期望能够引用包含的类。但是,您可以创建一个包含类的附加jar(同时创建war和jar):

http://maven.apache.org/plugins/maven-war-plugin/faq.html#attached

在拉入依赖项时,可以使用类型“jar”。。。就我而言:

<dependency>
    <groupId>uk.abc</groupId>
    <artifactId>ABC</artifactId>
    <version>1.0-SNAPSHOT</version>
    <type>jar</type>
</dependency>

因此我认为这个问题有点误导。。。依赖项是从Archiva提取的,但不是可访问的类型。

 类似资料:
  • 我试图在maven项目中使用外部库。由于我希望在任何机器上构建项目,所以我不希望使用 存储库(当依赖项在本地< code>.m2存储库中不可用时工作)结合工作,并且第二部分在每次构建期间刷新< code>.m2。 但是,我仍然不清楚为什么普通的“快照”机制不起作用(即,当前的脏解决方案在没有快照的情况下也能工作,因为本地< code>.m2 repo每次都显式更新)。有没有更干净的方法? 解决方案

  • 问题内容: 我们正在尝试将Archiva用作中央和其他外部存储库的Maven代理,以及用作我们的工件的快照存储,这些工件由Hudson从SVN自动构建并安装到快照存储库。 我无法将Maven客户端设置为同时使用内部存储库和快照存储库。我的项目有一些外部依赖项(例如),可以从Archiva内部存储库中正确下载。另外,我的项目还依赖于自己的项目,该项目的工件已经构建并安装到快照存储库中。但是,如果我尝

  • 我有一个本地的artifactory存储库。我在应用程序的pom.xml中有一个依赖项,如下所示: 我在我的“ext-local-snapshot”存储库中部署了一个activequant-p2-1.3-snapshot.jar。Artifactory将其部署在org/activequant/activequant-p2/activequant-p2-1.3-20130925.170928.jar

  • https://maven.java.net/content/repositories/public/com/oracle/avatar-js/0.10.25-SNAPSHOT/有罐子 和中的dllhttps://maven.java.net/content/repositories/public/com/oracle/libavatar-js-win-x64/0.10.25-SNAPSHOT/

  • 更新:简化我的问题-我有一个模块mod1,它被用作模块MOD2中的依赖项。我希望确保mod2始终使用mod1的最新版本快照。如何在Maven中实现这一点? 但是,这总是解析到发布版本1.0,而从不解析到1.1-快照,它在本地回购中。如何确保使用最新的快照?如果有任何建议,我将不胜感激。

  • 我很难从Gradle构建中找出如何解决Artifactory中远程工件的依赖关系。 文件集成修订正则表达式: 因此,根据我的理解,Gradle应该通过查看以下内容来解决依赖关系: 但它实际上是在看: 提前感谢!