2014-09-18 3 views
5

을 사용하여 Maven 버전을 Github에 배포 태그를 사용하여 Maven 프로젝트에서 Github로 JAR을 성공적으로 배포 할 수있었습니다. 그러나 현재 구성에서는 JAR의 파일 이름이 항상 동일하게 유지된다고 가정합니다. 새 릴리스를 수행하면 이에 따라 변경되므로 배포가 실패합니다.Travis CI

YAML 파일에서 와일드 카드를 사용할 수있는 방법이 있습니까? Stackoverflow 및 웹에서 발견 한 것과 같이 와일드 카드는 YAML에서 지원되지 않습니다. .travis.yml 파일 자체를 조작하지 않고도이 작업을 수행 할 수있는 또 다른 해킹을 찾을 수 없었습니다.

버전 문자열은 pom.xml입니다.

현재 .travis.yml : 나는 반드시 어떻게 든하지만 트래비스 CI는 자체 구성 파일을 변경 것이며, 나는 이것이) 작동하는지 모르겠어요와 b 스크립트)가있다 할 수

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 

좋은 생각.

리포 나는 함께 연주 해요 : https://github.com/ktk/helloci

답변

2

와일드 카드

가 지원됩니다,이 설정을 실행
1

죄송합니다, 와일드 카드 패턴이 순간에 작동하지 않습니다,하지만 우리는 트래비스 CI에 그 가능하게에보고해야합니다.

9

는 일이 주위 받는다는가 고정 된 이름을 사용하여 파일을 생성하는 것입니다, 이것은 당신이 작성하지 않는 경우 당신은 아마 받는다는 규칙에 따라 이름을 유지하려는 그러나

<build> 
    <finalName>helloci</finalName> 
</build> 

수행 할 수 있습니다 트래비스 -CI.

<properties> 
    <finalName>${project.artifactId}-${project.version}</finalName> 
</properties> 
<build> 
    <finalName>${finalName}</finalName> 

그리고 당신의 .travis.yml 파일에 다음 두 줄을 추가하여 받는다는을 실행할 때 -DfinalName=helloci을 통과 :

before_install: mvn install -DskipTests=true -DfinalName=helloci 
install: mvn test 

또한 수도 당신은 당신의 치어에 다음을 추가하여이 작업을 수행 할 수 있습니다 태그 이름을 생성 된 파일의 이름에 추가하려고합니다. 이것은 달성 할 수 있습니다

before_deploy: 
    - "mvn -DskipTests package" 
    - export FOO=$(ls target/foo-version-*.jar) 

deploy: 
    provider: releases 
    api_key: 
    secure: yep 
    file: "${FOO}" 
:
before_install: mvn install -DskipTests=true -DfinalName=helloci-$TRAVIS_TAG 
deploy: 
    file: target/helloci-$TRAVIS_TAG.jar