maven deploy 使用快照但 404 用于发布

maven deploy works with snapshots but 404 for releases

我正在尝试部署到我们的内部 Nexus 存储库。我已经配置了一个 Maven 项目,我可以在其中执行 mvn installmvn clean deploy。奇怪的是,当我从版本中删除 SNAPSHOT 时,我得到了 404.

这是我的 pom.xml 适用于 SNAPSHOTS:

<project>
  <modelVersion>4.0.0</modelVersion>

  <groupId>MavenExample</groupId>
  <artifactId>com.mycompany</artifactId>
  <version>1.0-SNAPSHOT</version>

  <distributionManagement>
    <repository>
      <id>nexus</id>
      <url>http://nexus.mycompany.com:8000/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
      <id>nexus</id>
      <url>http://nexus.mycompany.com:8000/repository/maven-snapshots/</url>
    </snapshotRepository>
  </distributionManagement>

  <build>
    <plugins>
      <plugin>
        <groupId>org.sonatype.plugins</groupId>
        <artifactId>nexus-staging-maven-plugin</artifactId>
        <version>1.6.3</version>
        <extensions>true</extensions>
        <configuration>
          <serverId>nexus</serverId>
          <nexusUrl>http://nexus.mycompany.com:8000/repository/maven-releases/</nexusUrl>
          <!-- update this to the correct id! -->
          <stagingProfileId>myid</stagingProfileId>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

当我把<version>1.0-SNAPSHOT</version>改成<version>1.0</version>

我收到这个错误:

[ERROR] Failed to execute goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.3:deploy (injected-nexus-deploy) on project explicit-staging-example: Execution injected-nexus-deploy of goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.3:deploy failed: Nexus connection problem to URL [http://nexus.mycompany.com:8000/repository/maven-releases/ ]: 404 - Not Found -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

它们都在 nexus 中可用:

我试过添加不同的插件,但没有成功。我不是 maven 专家,所以任何帮助将不胜感激!

您无法部署分阶段发布,因为您现在使用的是 Nexus 社区版,它不支持此功能。

现在您需要从 pom.xml 和常规

中删除 nexus-staging-maven-plugin 配置
mvn clean deploy

将 "just work"(但没有分期)。

当我使用 Steve C 的答案时,maven 刚刚停止部署。我改为通过 -DskipStaging=true,如记录 here。这让我可以继续使用 nexus-staging-maven-plugin,只是没有暂存功能。

我遇到了同样的问题,这个对我有用。

mvn clean install deploy -DskipStaging=true