在 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.

的参数