Maven Snaphot存储库问题
我们安装了Archiva,默认设置了两个存储库 这是我的设置。xml:Maven Snaphot存储库问题,maven,archiva,Maven,Archiva,我们安装了Archiva,默认设置了两个存储库 这是我的设置。xml: <server> <id>mycompany-release</id> <username>admin</username> <password>******</password> </server> <server> <id>mycompany-snapshots</id&g
<server>
<id>mycompany-release</id>
<username>admin</username>
<password>******</password>
</server>
<server>
<id>mycompany-snapshots</id>
<username>admin</username>
<password>******</password>
</server>
<mirror>
<id>mycompany-release</id>
<url>http://X.X.X.X:8080/archiva/repository/internal/</url>
<mirrorOf>external:*</mirrorOf>
</mirror>
<mirror>
<id>mycompany-snapshots</id>
<url>http://X.X.X.X:8080/archiva/repository/snapshots/</url>
<mirrorOf>apache.snapshots</mirrorOf>
</mirror>
<profile>
<id>repo</id>
<repositories>
<repository>
<id>mycompany-release</id>
<url>http://X.X.X.X:8080/archiva/repository/internal/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>mycompany-snapshots</id>
<url>http://X.X.X.X:8080/archiva/repository/snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
<activeProfiles>
<activeProfile>repo</activeProfile>
</activeProfiles>
mycompany发布
管理
******
mycompany快照
管理
******
mycompany发布
http://X.X.X.X:8080/archiva/repository/internal/
外部:*
mycompany快照
http://X.X.X.X:8080/archiva/repository/snapshots/
apache.snapshots
回购
mycompany发布
http://X.X.X.X:8080/archiva/repository/internal/
真的
假的
mycompany快照
http://X.X.X.X:8080/archiva/repository/snapshots/
假的
真的
回购
我有一个父项目,用于为所有项目设置公共配置。此父项目的版本为1-SNAPSHOT。因此,在所有其他项目中,父节指向版本为1-SNAPSHOT(不带相对路径元素)的父项目。如果我将父项目部署到archiva存储库,它就在那里。如果我尝试在另一个项目上运行任何命令,如mvn clean,它会工作,因为父项目是在部署期间安装的。但是,如果我从本地存储库手动删除父项目,并尝试运行相同的命令,Maven将返回一个错误,说明:
不可解析的父POM:找不到工件
com.mycompany:Parent:pom:1-mycompany发行版中的快照
(http://X.X.X.X:8080/archiva/repository/internal/)及
“parent.relativePath”指向错误的本地POM
父项目似乎是在发布存储库中查找的,而我希望它是在快照存储库中查找的
谢谢你的帮助
编辑:以下是子POM的一部分:
<parent>
<groupId>com.mycompany</groupId>
<artifactId>Parent</artifactId>
<version>1-SNAPSHOT</version>
</parent>
<groupId>com.mycompany</groupId>
<artifactId>child</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
com.mycompany
父母亲
1-快照
com.mycompany
小孩
1.0-快照
罐子
如果我删除父节并运行mvn help:effective pom,我会得到(仅显示存储库):
真的
假的
mycompany发布
http://X.X.X.X:8080/archiva/repository/internal/
假的
真的
mycompany快照
http://X.X.X.X:8080/archiva/repository/snapshots/
假的
中心的
Maven存储库交换机
http://repo1.maven.org/maven2
注意:如果我将父版本替换为1(而不是1-SNAPSHOT),它会工作。我发现了问题所在。settings.xml中有问题的行是:
<mirrorOf>external:*</mirrorOf>
外部:*
实际上,它使Maven考虑了<强> MyOffice发布<强>存储库,作为<强> MySoopsStudio知识库的镜像。但是,此存储库不镜像快照。我将这一行替换为:
<mirrorOf>central</mirrorOf>
central
现在,mycompany发行版存储库只镜像Maven中央存储库,而不是mycompany快照存储库,因此它在mycompany快照存储库中查找快照工件
谢谢安德鲁的帮助!我现在没有可能显示完整的日志。请为子项目提供
pom.xml
。@AndrewLogvinov谢谢,我已经编辑了这篇文章。我想说需要的是剩下的=)你能执行mvn帮助:有效的pom
和post输出吗(
部分应该足够了)@AndrewLogvinov我无法运行mvn帮助:有效的pom,我得到了关于家长的相同错误。这很奇怪。。通过这种配置,Maven应该只在快照和中央存储库中查找父工件。你能发布mvn-X软件包的输出吗?
<mirrorOf>central</mirrorOf>