在 Nexus 服务器上部署 Artefact - 无法解决错误依赖关系
Deploy Artefact at nexus Server - error dependencies could not be resolved
我已经设置了一个 Nexus 服务器,然后我想简单地向这个 Nexus 服务器部署一个人工制品。因此我用这个 pom 创建了一个简单的 Java 项目:
<project xmlns="...">
<modelVersion>4.0.0</modelVersion>
<groupId>MyProject</groupId>
<artifactId>MyProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
我的设置文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<settings ...>
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>
<mirrors>
<mirror>
<id>nexus</id>
<name>Nexus Public Mirror</name>
<mirrorOf>central</mirrorOf>
<url>http://it-nexus.domain:8081/nexus/content/groups/public</url>
</mirror>
</mirrors>
<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>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
然后我尝试通过以下方式部署我的人工制品:
mvn deploy
我得到了这个错误:
[ERROR] Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of its dependencies could not be resolved: Failure to find org.apache.maven.plugins:maven-resources-plugin
:jar:2.6 in http://it-nexus.domain:8081/nexus/content/groups/public was cached in the local repository, resolution will not be reattempted until the update interval of
nexus has elapsed or updates are forced -> [Help 1]
其实我也不知道自己做错了什么!?
你有几处地方错了(好吧,确实是所有地方)。
首先,您可以从 server.xml 文件中删除 profiles
及其下的所有内容,连同 activeProfiles
。接下来,您需要添加一个 servers
条目,其中包含一个带有 id
、'nexus' 的服务器(假设您要上传到与镜像中心相同的 nexus 实例),以及某种用户名和密码。
然后您的 pom 中必须有一个 distributionManagement
部分,引用您在 settings.xml 文件中指定的相同 server
,并配置 maven-deploy 插件。可以找到相关文档 here。您还需要一个 scm
部分。
您所说的实际错误可能是因为您的 Nexus 服务器实际上并未配置为 proxy/mirror central
。哦,你应该使用 *
作为 mirrorOf
.
的参数
我已经设置了一个 Nexus 服务器,然后我想简单地向这个 Nexus 服务器部署一个人工制品。因此我用这个 pom 创建了一个简单的 Java 项目:
<project xmlns="...">
<modelVersion>4.0.0</modelVersion>
<groupId>MyProject</groupId>
<artifactId>MyProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
我的设置文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<settings ...>
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>
<mirrors>
<mirror>
<id>nexus</id>
<name>Nexus Public Mirror</name>
<mirrorOf>central</mirrorOf>
<url>http://it-nexus.domain:8081/nexus/content/groups/public</url>
</mirror>
</mirrors>
<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>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
然后我尝试通过以下方式部署我的人工制品:
mvn deploy
我得到了这个错误:
[ERROR] Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of its dependencies could not be resolved: Failure to find org.apache.maven.plugins:maven-resources-plugin
:jar:2.6 in http://it-nexus.domain:8081/nexus/content/groups/public was cached in the local repository, resolution will not be reattempted until the update interval of
nexus has elapsed or updates are forced -> [Help 1]
其实我也不知道自己做错了什么!?
你有几处地方错了(好吧,确实是所有地方)。
首先,您可以从 server.xml 文件中删除 profiles
及其下的所有内容,连同 activeProfiles
。接下来,您需要添加一个 servers
条目,其中包含一个带有 id
、'nexus' 的服务器(假设您要上传到与镜像中心相同的 nexus 实例),以及某种用户名和密码。
然后您的 pom 中必须有一个 distributionManagement
部分,引用您在 settings.xml 文件中指定的相同 server
,并配置 maven-deploy 插件。可以找到相关文档 here。您还需要一个 scm
部分。
您所说的实际错误可能是因为您的 Nexus 服务器实际上并未配置为 proxy/mirror central
。哦,你应该使用 *
作为 mirrorOf
.