释放到Maven Central

时间:2014-12-28 10:29:31

标签: maven maven-3 sonatype maven-central

我作为开发人员加入了Maven项目,现在我需要发布一个版本。 我已将nexus-staging-maven-plugin添加到pom.xml文件。

<plugin>
  <groupId>org.sonatype.plugins</groupId>
  <artifactId>nexus-staging-maven-plugin</artifactId>
  <version>1.6.3</version>
  <extensions>true</extensions>
  <configuration>
    <serverId>ossrh</serverId>
    <nexusUrl>https://oss.sonatype.org/</nexusUrl>
    <autoReleaseAfterClose>true</autoReleaseAfterClose>
  </configuration>
</plugin>

此外,我已将distributionManagement添加到pom.xml

<distributionManagement>
  <snapshotRepository>
    <id>ossrh</id>
    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
  </snapshotRepository>
  <repository>
    <id>ossrh</id>
    <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
  </repository>
</distributionManagement>

我已将凭据放入~/.m2/settings.xml

<settings>
  <servers>
    <server>
      <id>ossrh</id>
      <username>divanov-oss.sonatype.org-account</username>
      <password>divanov-oss.sonatype.org-password</password>
    </server>
  </servers>
</settings>

我还尝试创建和使用&#34;访问用户令牌&#34;在oss.sonatype.org上 作为我的凭据。

现在我正在执行将发布部署到maven中心。

mvn clean deploy

最终出现在错误中:

[ERROR] Failed to execute goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.3:deploy
(injected-nexus-deploy) on project project: Failed to deploy artifacts:
Could not transfer artifact
project:jar:4.4.0-20141228.104011-1 from/to ossrh
(https://oss.sonatype.org/content/repositories/snapshots): Access denied to:
https://oss.sonatype.org/content/repositories/snapshots/project/project/4.4.0-SNAPSHOT/project-4.4.0-20141228.104011-1.jar,
ReasonPhrase: Forbidden. -> [Help 1]

[INFO] Performing remote staging...
[INFO] 
[INFO]  * Remote staging into staging profile ID "329a0bc2b7ce06"
[ERROR] Remote staging finished with a failure: 403 - Forbidden
[ERROR] 
[ERROR] Possible causes of 403 Forbidden:
[ERROR]  * you have no permissions to stage against profile with ID "329a0bc2b7ce06"? Get to Nexus admin...

如何在Maven项目中检查我的访问权限?我试图发布?

2 个答案:

答案 0 :(得分:4)

您的凭据可能很好,如果不是,您将收到401错误。你得到403(被禁止)。这意味着凭据已被接受,但您无权发布工件。最常见的原因是您使用的Maven组ID与分配给您的Maven组ID不同。在“社区支持 - 开源项目资源库托管”中的https://issues.sonatype.org处提出问题,我们将解决此问题。

答案 1 :(得分:0)

您需要使用的凭据不应该是Sonatype JIRA,而是oss.sonatype.org。你需要单独注册。

[更新]问题已更改,因此此答案不再适用。我会保留它,因为这是一个常见的错误。