我正在尝试将 nexus 集成到一个 maven 项目中并且遇到问题,希望这里有人可以提供帮助。
最初我让我的 Mavensettings.xml
文件只使用本地存储库:
<settings>
<localRepository>C:\\r</localRepository>
...
</settings>
这工作正常,我项目的所有依赖项都下载到本地存储库中。我通过删除maven-settings-2.2.1
工件的目录并mvn -U dependency:list
再次运行来验证这一点:
下载:http://repo.maven.apache.org/maven2/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.pom 下载:http://repo.maven.apache.org/maven2/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.pom(3 KB,11.3 KB/秒) 下载:http://repo.maven.apache.org/maven2/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.jar 下载:http://repo.maven.apache.org/maven2/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.jar(48 KB,509.5 KB/秒)
从上面可以看出,工件的pom.xml
and.jar
文件maven-settings-2.2.1
已经下载。
接下来,我尝试将我的 maven 项目配置为指向我设置的 nexus 存储库:
<settings>
<localRepository>C:\\r</localRepository>
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://<server>:<port>/nexus/content/groups/public</url>
</mirror>
</mirrors>
...
</settings>
我从本地存储库中删除了maven-settings-2.2.1
工件,然后mvn -U dependency:list
再次运行:
下载:http://:/nexus/content/groups/public/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.pom 下载:http://:/nexus/content/groups/public/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.pom(3 KB,17.0 KB/秒) 下载:http://:/nexus/content/groups/public/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.jar [错误] 无法在项目上执行目标:无法解析项目的依赖项:无法解析以下工件:org.apache.maven:maven-settings:jar:2.2.1: 找不到工件 org.apache.maven :maven-settings:jar:2.2.1 在 nexus (http://:/nexus/content/groups/public) -> [帮助 1]
这一次,nexus 可以下载pom.xml
文件maven-settings-2.2.1
神器,但不能下载.jar
文件。我检查了 nexus 服务器,当我浏览“中央”存储库的远程内容时,我可以看到maven-settings-2.2.1
工件(包括文件) pom.xml
,.jar
但在 nexus 本地存储中,我pom.xml
只看到文件。
因此,我查看了 nexus 文档(请参阅http://books.sonatype.com/nexus-book/reference/maven-sect-single-group.html)并按照建议使用 nexus 配置文件设置我的 maven 设置:
<settings>
... as before ...
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
</settings>
我再次删除了maven-settings-2.2.1
工件的任何本地副本,然后运行mvn -U dependency:list
:
下载:http://:/nexus/content/groups/public/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.pom 下载:http://:/nexus/content/groups/public/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.pom 下载:http://:/nexus/content/groups/public/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.jar [错误] 无法在项目上执行目标:无法解析项目的依赖项:无法解析以下工件:org.apache.maven:maven-settings:jar:2.2.1: 找不到工件 org.apache.maven :maven-settings:jar:2.2.1 在 nexus (http://:/nexus/content/groups/public) -> [帮助 1]
和以前一样,pom.xml
是从nexus 下载的,但不是.jar
文件。和以前一样,当我检查 nexus 服务器上的本地存储时,pom.xml
文件存在,但文件不存在.jar
。
作为健全性测试,我从我的 mavensettings.xml
中删除了 nexus 配置,从我的本地存储库中删除了maven-settings-2.2.1
工件,然后再次尝试:
下载:http://repo.maven.apache.org/maven2/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.pom 下载:http://repo.maven.apache.org/maven2/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.pom 下载:http://repo.maven.apache.org/maven2/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.jar 下载:http://repo.maven.apache.org/maven2/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.jar
这一次,pom.xml
和`.jar 文件都是直接下载的。
所以我不确定我需要做什么来解决这个问题:当使用本地存储库并让 maven 直接下载依赖项时,我可以下载工件的pom.xml
和.jar
文件。maven-settings-2.2.1
当我将我的 nexus 服务器添加到组合中时,只有pom.xml
nexus 下载。
这是一个关系服务器配置问题,还是一个 Maven 配置问题?