Java 从Maven部署到bintray失败

Java 从Maven部署到bintray失败,java,maven,deployment,maven-release-plugin,bintray,Java,Maven,Deployment,Maven Release Plugin,Bintray,根据Andreas Veithen的一篇博客文章,我为一个Java项目设置了maven构建 我的pom版本是1.0.2-SNAPSHOT,我已经在我的bintray包中创建了相应的1.0.2。我执行了mvn-预轻松清洁安装,没有问题。我执行mvn发布:准备,没有问题。但是当我执行mvn release:perform时,构建中断,并显示以下错误消息 Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:de

根据Andreas Veithen的一篇博客文章,我为一个Java项目设置了maven构建

我的
pom
版本是1.0.2-SNAPSHOT,我已经在我的bintray包中创建了相应的
1.0.2
。我执行了
mvn-预轻松清洁安装
,没有问题。我执行mvn发布:准备,没有问题。但是当我执行
mvn release:perform
时,构建中断,并显示以下错误消息

Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy 
(default-deploy) on project [PROJECT]: Failed to deploy artifacts: Could not 
transfer artifact my.project:test:jar:1.0.2-20140408.154954-1 from/to bintray-
user-maven-package (https://api.bintray.com/maven/user/maven/package): Failed to 
transfer file: https://api.bintray.com/maven/user/maven/package/my/project/test/
1.0.2-SNAPSHOT/test-1.0.2-20140408.154954-1.jar. Return code is: 400, 
ReasonPhrase: Bad Request. -> [Help 1]
我注意到发布插件正在尝试上传快照,当然这应该在bintray上没有位置。。。我原以为它会尝试部署1.0.2?我如何说服maven上传正确的工件,或者我的设置有什么问题吗

以下是我认为相关的POM部分,完整的POM位于

4.0.0
我的工具
利用率
罐子
1.0.2-快照
scm:git:https://github.com/user/package.git
scm:git:git@github.com:user/package.git
https://github.com/user/package
头
bintray用户maven包
用户maven包
https://api.bintray.com/maven/user/maven/package
释放
maven源插件
附加来源
罐子
maven javadoc插件
附加javadocs
罐子
安装
org.apache.maven.plugins
maven编译器插件
3.1
1.7
1.7
com.mycila
许可maven插件
2.6
${basedir}/src/etc/header.txt
src/main/java/**
src/test/java/**
检查
maven发布插件
2.5
假的
释放
真的

为了了解maven release插件配置的问题,您必须发布pom

也可以这样考虑: 您可以使用oss.jfrog.org在push-to-Bintray期间自动创建并转换为发行版

  • 缺点-对于仅链接到jcenter的开源项目
  • 优点-:)用于开发过程的免费Artifactory实例,与任何CI服务器(托管或云)集成,通过单个rest API调用透明地发布到Bintray

    • 我也有同样的问题。将maven release插件降级到2.4版为我解决了这个问题。

      在maven
      mvn发行版:执行
      步骤期间,文件应传输到:

      https://api.bintray.com/maven/user/maven/package/my/project/test/1.0.2
      
      而非:

      https://api.bintray.com/maven/user/maven/package/my/project/test/1.0.2-SNAPSHOT
      
      这就是Bintray正确返回的原因:

      Return code is: 400, ReasonPhrase: Bad Request.
      
      将maven release插件从(我的)v2.2.2升级到当前最新的v2.5,为我修复了它。升级后,
      mvn release:prepare
      步骤的行为有所不同


      返回代码是:401 正如@vorburger在评论中提到的,如果(使用maven deploy plugin:2.7)Bintray返回:

      Return code is: 401, ReasonPhrase: Unauthorized.
      
      “just”表示您在
      settings.xml
      中没有或错误的
      用户名和密码:

      <server>
        <id>{matching-id}</id>
        <username>{bintray-user}</username>
        <password>{bintray-api-key}</password>
      </server>
      
      
      {匹配id}
      {bintray用户}
      {bintray api密钥}
      
      匹配id的
      值应与
      pom.xml
      文件(在
      部分)中定义的值相同

      可以在中生成
      bintray api键


      不要使用的
      mvn deploy
      来执行发布
      由于错误,我最初尝试了
      mvn deploy
      (尝试推送
      *-SNAPSHOT
      ),而不是
      mvn发布:prepare
      +
      mvn发布:perform
      (正确创建并推送发布)。

      谢谢。在问题中添加了相关的POM摘录,并将整个内容放在了pastebin上。您确定要发布1.0.2而不是1.0.1吗?因为我希望Maven在1.0.1发布后尝试部署1.0.2-SNAPSHOT。@JBaruch:对不起,在几次发布失败后,我已经进行了多次硬重置并删除了标记。我已将POM版本再次更改为
      1.0.2-SNAPSHOT
      …PS:If而不是“返回代码为:400,ReasonPhrase:Bad Request.”您点击了“返回代码为:401,ReasonPhrase:Unauthorized.”。。。(使用maven deploy plugin:2.7),那么“just”表示您在settings.xml中没有或错误的用户名和密码(带有匹配的…)。