maven - 使用 Travis CI 将 Maven 版本部署到 Github

标签 maven deployment github travis-ci

我成功地使用标签将 JAR 从 Maven 项目部署到 Github。但是,当前配置假定 JAR 的文件名始终保持不变,但事实并非如此。当我发布新版本时,这会相应地改变,因此部署将失败。

有没有办法可以在 YAML 文件中使用通配符?根据我在 Stackoverflow 和网络上的发现,YAML 不支持通配符。如果不操作 .travis.yml 文件本身,我就找不到另一个 hack 来执行此操作,我想避免这种情况。

版本字符串在 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

我当然可以以某种方式编写脚本,但是 Travis CI 会更改自己的配置文件,我不确定 a) 是否可行,b) 是否是一个好主意。

我正在玩的 repo :https://github.com/ktk/helloci

最佳答案

解决方法是让 maven 使用固定名称生成文件,这可以通过

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

但是,如果您不是在 travis-ci 上构建,您可能希望按照 maven 约定保留名称。您可以通过将以下内容添加到您的 pom 中来实现此目的:
<properties>
    <finalName>${project.artifactId}-${project.version}</finalName>
</properties>
<build>
    <finalName>${finalName}</finalName>

和路过-DfinalName=helloci通过将以下 2 行添加到您的 .travis.yml 来执行 maven 时文件:
before_install: mvn install -DskipTests=true -DfinalName=helloci
install: mvn test

您可能还想将标记名称添加到生成的文件的名称中。这可以通过以下方式实现:
before_install: mvn install -DskipTests=true -DfinalName=helloci-$TRAVIS_TAG
deploy:
  file: target/helloci-$TRAVIS_TAG.jar

关于maven - 使用 Travis CI 将 Maven 版本部署到 Github,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25916249/

相关文章:

eclipse - 无法在 Eclipse (Bluemix) 上部署应用程序

github - 如何为 GitHub 开放软件存储库做出贡献?

java - HTTP 500 内部服务器错误 : while containerizing my java web app

deployment - 使用 Web Deploy 和 .NET Web.configs 构建一次,随处部署

java - 在 Maven 构建期间将 Swagger 规范保存到文件

deployment - 如何在 Visual Studio Online 中复制任务组?

github - 在提交到 github 之前,如何测试我的 readme.md 文件的外观?

git - "git add *.js"没有添加子目录下的文件

Maven 部署失败?

使用 Bintray 托管 Maven