Adr*_*end 5 deployment github maven travis-ci
我成功地设法使用标签将maven项目中的JAR部署到Github.但是,当前配置假定JAR的文件名始终保持不变,而不是.当我执行新版本时,这将相应地更改,因此部署将失败.
有没有办法在YAML文件中使用通配符?从我在Stackoverflow和Web上找到的内容来看,YAML不支持通配符.我没有在没有操纵.travis.yml文件的情况下找到另一个黑客,我想避免.
版本字符串可用于pom.xml
.
目前.travis.yml:
language: java
jdk:
- openjdk7
deploy:
provider: releases
api_key:
secure: asfdsdflkjsdflkj...
file: target/helloci-1.0-SNAPSHOT.jar
on:
repo: ktk/helloci
all_branches: true
tags: true
Run Code Online (Sandbox Code Playgroud)
我肯定能以某种方式编写脚本但是Travis CI会更改自己的配置文件,我不确定这是否会起作用,b)是个好主意.
Repo我正在玩:https://github.com/ktk/helloci
解决方法是让maven使用固定名称生成文件,这可以通过以下方式完成
<build>
<finalName>helloci</finalName>
</build>
Run Code Online (Sandbox Code Playgroud)
但是,如果您不是在travis-ci上构建,则可能希望按照maven约定保留名称.您可以通过在pom中添加以下内容来实现此目的:
<properties>
<finalName>${project.artifactId}-${project.version}</finalName>
</properties>
<build>
<finalName>${finalName}</finalName>
Run Code Online (Sandbox Code Playgroud)
通过-DfinalName=helloci
在.travis.yml
文件中添加以下两行来执行maven时传递:
before_install: mvn install -DskipTests=true -DfinalName=helloci
install: mvn test
Run Code Online (Sandbox Code Playgroud)
您可能还希望将标记名称添加到生成的文件的名称中.这可以通过以下方式实现:
before_install: mvn install -DskipTests=true -DfinalName=helloci-$TRAVIS_TAG
deploy:
file: target/helloci-$TRAVIS_TAG.jar
Run Code Online (Sandbox Code Playgroud)
现在支持通配符,我运行此设置:
before_deploy:
- "mvn -DskipTests package"
- export FOO=$(ls target/foo-version-*.jar)
deploy:
provider: releases
api_key:
secure: yep
file: "${FOO}"
Run Code Online (Sandbox Code Playgroud)