我正在重新配置很久以前其他人设置的构建服务器,以使用新的Maven存储库。但是,旧的存储库仍然被引用,我无法弄清楚该引用的来源。
M2_HOME =的/ usr /共享/ maven2的
/etc/maven2/m2.conf (usr / share / maven2 / conf / m2.conf链接在这里)
main is org.apache.maven.cli.MavenCli from plexus.core
set maven.home default ${user.home}/m2
[plexus.core]
load ${maven.home}/lib/*.jar
/ etc / maven2 / conf还有一个settings.xml,其中所有条目都被注释掉了。
构建用户有一个〜/ .m2 / settings.xml:引用 NewRepo 。
<settings>
<pluginGroups>
</pluginGroups>
<servers>
</servers>
<profiles>
<profile>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<id>personal</id>
<repositories>
<repository>
<id>new-repo</id>
<name>New Maven 2 Repo</name>
<url>http://NewRepo/</url>
</repository>
<!-- Some other standard repos like maven.org here -->
</repositories>
<pluginRepositories>
<pluginRepository>
<id>ibiblio</id>
<name>Ibiblio Maven 2 Repo</name>
<url>http://repo1.maven.org/maven2/</url>
</pluginRepository>
<pluginRepository>
<id>apache-snapshots</id>
<name>Apache Snapshots Maven 2 Repo</name>
<url>http://people.apache.org./maven-snapshot-repository/</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
</settings>
还有一个/mnt/public/maven/settings.xml,其内容与构建用户的settings.xml完全相同
我搜索了整个文件系统,以确保没有其他settings.xml文件。
运行时
mvn release:prepare
我收到警告:
[INFO]注意:Maven正在执行 离线模式。任何文物都没有 已经在你的本地存储库中了 无法访问。
运行时
mvn release:perform
我收到错误:
部署工件时出错:无法执行 转移文件:http:// OldRepo
http:// OldRepo 的引用哪里可以隐藏?
修改
项目的pom.xml引用父POM,如下所示:
<parent>
<groupId>MyParent</groupId>
<artifactId>maven</artifactId>
<version>20090727</version>
</parent>
没有提及
<distributionManagement>
在项目的POM中。我无法找到父POM。
答案 0 :(得分:8)
在profile
中宣布的settings.xml
内的repositories
左右,文档说:
存储库是Maven用来填充构建系统的本地存储库的项目的远程集合。它来自这个本地存储库,Maven称之为插件和依赖项。不同的远程存储库可能包含不同的项目,在活动的配置文件下,可能会搜索匹配的版本或快照工件。
因此,这不用于发布管理。要配置部署工件的位置,您需要在pom中添加distributionManagement
元素。
以下是如何在项目pom.xml文件中配置distributionManagement
元素的示例。
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>Application</name>
<url>http://app.mycompany.com</url>
...
<distributionManagement>
<repository>
<id>myRepoId</id>
<name>myCompanyReporsitory</name>
<url>ftp://repository.mycompany.com/repository</url>
</repository>
</distributionManagement>
...
</project>
在您的pom或父pom中查找此元素(可以在公司父pom中声明)。
编辑:您可以覆盖pom中的distributionManagement
,但最好在父pom中修改它并在企业存储库中发布此新版本(如果这是一个权威性的)更改。
答案 1 :(得分:0)
也许愚蠢的建议,但你有没有尝试过你的老朋友grep
,如果可以的话?