【发布时间】:2014-04-08 16:08:10
【问题描述】:
我已经根据 Andreas Veithen 的博客文章 Publishing releases using Github, Bintray and maven-release-plugin 为 Java 项目设置了 maven 构建。
我的pom 版本是1.0.2-SNAPSHOT,我在我的bintray 包中创建了相应的版本1.0.2。我执行mvn -Prelease clean install,没问题。我执行mvn release:prepare,没问题。但是当我执行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]
我注意到发布插件正在尝试上传 SNAPSHOT,当然这在 bintray 上应该没有位置...我原以为它会尝试部署 1.0.2?如何说服 maven 上传正确的工件,或者我的设置有什么问题?
以下是我认为相关的 POM 部分,完整的 POM 位于 pastebin。
<modelVersion>4.0.0</modelVersion>
<groupId>my.tool</groupId>
<artifactId>util</artifactId>
<packaging>jar</packaging>
<version>1.0.2-SNAPSHOT</version>
<scm>
<connection>scm:git:https://github.com/user/package.git</connection>
<developerConnection>scm:git:git@github.com:user/package.git</developerConnection>
<url>https://github.com/user/package</url>
<tag>HEAD</tag>
</scm>
<distributionManagement>
<repository>
<id>bintray-user-maven-package</id>
<name>user-maven-package</name>
<url>https://api.bintray.com/maven/user/maven/package</url>
</repository>
</distributionManagement>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<build>
<defaultGoal>install</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>2.6</version>
<configuration>
<header>${basedir}/src/etc/header.txt</header>
<includes>
<include>src/main/java/**</include>
<include>src/test/java/**</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.5</version>
<configuration>
<useReleaseProfile>false</useReleaseProfile>
<releaseProfiles>release</releaseProfiles>
<autoVersionSubmodules>true</autoVersionSubmodules>
</configuration>
</plugin>
</plugins>
</build>
【问题讨论】:
-
您确定要发布 1.0.2 而不是 1.0.1?因为我希望 Maven 在 1.0.1 发布后尝试部署 1.0.2-SNAPSHOT。
-
@JBaruch:抱歉,在几次发布失败后,我进行了多次硬重置并删除了标签。我再次将 POM 版本更改为
1.0.2-SNAPSHOT...
标签: java maven deployment maven-release-plugin bintray