我一直在设置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 / settings.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文件就在那里。
有什么想法吗?
答案 0 :(得分:1)
事实证明,您不能使用“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中提取的,但不是一种可访问的类型。
答案 1 :(得分:0)
您可能没有正确激活配置文件
在 settings.xml 中的配置文件之前添加类似
的内容<activeProfiles>
<activeProfile>default</activeProfile>
</activeProfiles>
关于activeByDefault
,请记住this此配置文件将自动为所有版本激活,除非 使用其中一个激活同一个POM中的另一个配置文件 先前描述的方法。默认情况下处于活动状态的所有配置 激活POM中的配置文件时自动停用 在命令行上或通过其激活配置。
如果您想确认这是否是问题,请运行help:active-profiles