Maven 2 Maven存储库位置问题
我正在重新配置其他人很久以前安装的构建服务器,以使用新的Maven存储库。但是,旧的存储库仍在被引用,我不知道该引用来自何处 M2_HOME=/usr/share/maven2 /etc/maven2/m2.conf(这里有usr/share/maven2/conf/m2.conf链接) /etc/maven2/conf还有一个settings.xml,其中所有条目都被注释掉了 生成用户有一个~/.m2/settings.xml:引用NewRepoMaven 2 Maven存储库位置问题,maven-2,repository,Maven 2,Repository,我正在重新配置其他人很久以前安装的构建服务器,以使用新的Maven存储库。但是,旧的存储库仍在被引用,我不知道该引用来自何处 M2_HOME=/usr/share/maven2 /etc/maven2/m2.conf(这里有usr/share/maven2/conf/m2.conf链接) /etc/maven2/conf还有一个settings.xml,其中所有条目都被注释掉了 生成用户有一个~/.m2/settings.xml:引用NewRepo <settings> &l
<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>
我得到警告:
[信息]注意:Maven正在执行
脱机模式。有没有文物没有
已经在本地存储库中的将
无法接近
跑步时
mvn release:perform
我得到一个错误:
部署项目时出错:未能
传输文件:http://OldRepo
对http://OldRepo的引用会隐藏在哪里
编辑
项目的pom.xml引用父pom,如下所示:
<parent>
<groupId>MyParent</groupId>
<artifactId>maven</artifactId>
<version>20090727</version>
</parent>
我的父母
专家
20090727
没有提及
<distributionManagement>
在项目的POM中。我无法找到父POM。关于在设置.xml
中声明的配置文件中,文档显示:
存储库是项目的远程集合,Maven使用这些项目填充构建系统的本地存储库。Maven称之为插件和依赖项的就是这个本地存储库。不同的远程存储库可能包含不同的项目,在活动概要文件下,可以搜索它们以查找匹配的版本或快照工件
所以这不用于发布管理。要配置工件的部署位置,需要在pom中添加distributionManagement
元素
下面是如何在project 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>
4.0.0
com.mycompany.app
应用程序
罐子
1.0-快照
应用
http://app.mycompany.com
...
粘虫
支原体感染
ftp://repository.mycompany.com/repository
...
在您的pom或父pom中查找此元素(可以在公司父pom中声明)
编辑:您可以覆盖pom中的distributionManagement
,但最好在父pom中对其进行修改,并在企业存储库中发布此新版本(如果这是最终更改) 建议可能很愚蠢,但您是否与您的老朋友尝试过grep
,如果可用?发布:prepare警告不会影响您的部署。父pom必须位于您的本地repo中(遵循groupId)。项目的pom中没有distributionManagement节点。有一个对父POM的引用(添加到我的问题中),但是没有为父POM指定路径,并且在构建目录中根本没有其他项目。在文件系统中搜索了所有pom.xml以尝试定位父pom,但没有成功。如果已在企业存储库中发布了父pom,则可以使用其groupId
、artifactId
和version
,而不使用relativePath
,来声明父pom。这实际上是“公司”pom应该如何使用的(这里似乎就是这样)。父pom必须已下载到您的本地存储库中。啊,就是这样。父POM在存储库中。我尝试的第一件事是:-)我尝试将所有大小小于5K的常规文件grep为相关文本(在首次尝试POM.xml和*.xml之后)。我现在正在运行grep检查所有文件。那个已经跑了一段时间了。
<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>