travis gitflow java maven工作流
我都 正在处理github上托管的java项目。 我想将代码直接推送到sonatype on development和master branch 目前只有develope分支工作,因为我跳过了gpg签名 我将.travis文件夹中的setting.xml与我的凭据一起使用travis gitflow java maven工作流,maven,travis-ci,git-flow,sonatype,Maven,Travis Ci,Git Flow,Sonatype,我都 正在处理github上托管的java项目。 我想将代码直接推送到sonatype on development和master branch 目前只有develope分支工作,因为我跳过了gpg签名 我将.travis文件夹中的setting.xml与我的凭据一起使用 <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<!-- Maven Central Deployment -->
<id>ossrh</id>
<username>${env.SONATYPE_USERNAME}</username>
<password>${env.SONATYPE_PASSWORD}</password>
</server>
</servers>
<profiles>
<profile>
<id>ossrh</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<gpg.executable>gpg</gpg.executable>
<gpg.passphrase>${env.GPG_PASSPHRASE}</gpg.passphrase>
</properties>
</profile>
</profiles>
</settings>
我的发布配置文件包括所需的部署插件
当我推一个标签/发布(比如0.0.2)时,我得到了一个错误。我希望这将使用标记部署一个发行版
开发分支工作正常,快照被正确部署到sonatype repo
提前谢谢
这是travis日志错误
命令“mvn--settings.travis/settings.xml clean verify”已与0一起退出。
跳过脚本提供程序的部署,因为不允许此分支
dpl.0
取数:dpl-1.8.31.gem(100%)取数:dpl-1.8.31.gem(100%)
已成功安装dpl-1.8.31
已安装1个gem
dpl.1
安装部署依赖项
!!! 脚本支持是实验性的!!!
准备部署
使用“git stash--all”清理git存储库。如果需要为部署生成构件,请设置“deploy.skip\u cleanup:true”。看见https://docs.travis-ci.com/user/deployment/#Uploading-档案。
没有要保存的本地更改
dpl.3
部署应用程序
没有找到藏品。
/home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.31/lib/dpl/cli.rb:54:“系统”中:第一个参数错误(ArgumentError)
from/home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.31/lib/dpl/cli.rb:54:在“shell”中
from/home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.31/lib/dpl/provider/script.rb:18:在“推送应用程序”中
from/home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.31/lib/dpl/provider.rb:146:在“部署中的块”中
from/home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.31/lib/dpl/cli.rb:41:in“fold”
from/home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.31/lib/dpl/provider.rb:146:在“部署”中
from/home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.31/lib/dpl/cli.rb:32:在“运行”中
from/home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.31/lib/dpl/cli.rb:7:在“运行”中
from/home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.31/bin/dpl:5:in`'
from/home/travis/.rvm/gems/ruby-1.9.3-p551/bin/dpl:23:in'load'
from/home/travis/.rvm/gems/ruby-1.9.3-p551/bin/dpl:23:in`'
未能部署
经过多次尝试和错误后,我意识到在travis上尝试和签署发布版本太多了,没有好的支持,这是一个遗憾
我的替代解决方案是使用bintray->
它提供了一个发布回购协议,可以自动对JAR进行gpg签名。它还与sonatype同步,所以我相信这是一个使用maven的完整解决方案
在pom中,我使用插件自动化了版本控制->
注意我没有从特拉维斯那里承诺
为了简单起见,我将快照直接保存到sonatype中->
您可以在此处查看我的工作流程->
使用gitflow,正常的CommittoDevelop分支将自动将快照推送到sonatype。使用版本(标记后)将触发构建,并使用maven版本插件进行反向,该插件将从pom中删除快照并部署到bintray。不完全确定如何帮助您,但浏览DPL时,我确实看到了这一点:,您可以在那里查看一下,看看是否有任何提交为您提供了如何使其工作的线索。为了避免设置版本,可以执行
${revision}
,请参见此处:对于travis,我遵循的是:唯一重要的事情是存储与GPG相关的环境变量,而不使用换行符,例如GPG——导出所有者信任| base64 | tr-d'\n'
language: java
jdk:
- oraclejdk8
script:
- mvn --settings .travis/settings.xml clean verify
deploy:
-
provider: script
script:
- mvn --settings .travis/settings.xml deploy -D gpg.skip -P release
on:
branch: develop
-
provider: script
script:
- mvn --settings .travis/settings.xml org.codehaus.mojo:versions-maven-plugin:2.3:set -D newVersion=$TRAVIS_TAG -P release
- .travis/gpg.sh
- mvn clean deploy --settings .travis/settings.xml -D skipTests=true --batch-mode --update-snapshots -P release
on:
tags: true