我一直在设置一个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文件在那里。
有什么想法吗?
您可能没有正确激活配置文件
在设置中的配置文件之前。比如说
<activeProfiles>
<activeProfile>default</activeProfile>
</activeProfiles>
记住这一点关于activeByDefault
除非使用前面描述的方法之一激活同一POM中的另一个配置文件,否则此配置文件将自动对所有构建处于活动状态。当POM中的配置文件在命令行上或通过其激活配置文件激活时,默认激活的所有配置文件都会自动停用。
如果要确认这是否是问题所在,请运行help:active profiles
事实证明,您不能使用“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应该通过查看以下内容来解决依赖关系: 但它实际上是在看: 提前感谢!