【问题标题】:Testing a Grails 2.5.3 app in Travis-CI tries to use Grails 2.4.4在 Travis-CI 中测试 Grails 2.5.3 应用程序尝试使用 Grails 2.4.4
【发布时间】:2016-02-23 06:31:48
【问题描述】:

我有一个基于 Grails 2.5.3 (https://github.com/ppazos/cabolabs-ehrserver) 构建的应用程序。

当我提交到 GitHub 时,我正在尝试集成 Travis-CI 来运行我的应用程序的测试。这是我的 travis 配置文件(经过几个小时的反复试验,我没有运气就结束了):https://github.com/ppazos/cabolabs-ehrserver/blob/master/.travis.yml

language: groovy

sudo: false

jdk:
  - oraclejdk7

env:
  - GRAILS_VERSION=2.5.3

before_install:
  - rm -rf ~/.gvm
  - curl -s get.sdkman.io | bash
  - source "$HOME/.sdkman/bin/sdkman-init.sh"
  - echo sdkman_auto_answer=true > ~/.sdkman/etc/config
  - source "/home/travis/.sdkman/bin/sdkman-init.sh"
  # dev null is to avoid the need for user input https://github.com/sdkman/sdkman-cli/issues/101
  - sdk install grails $GRAILS_VERSION < /dev/null
  - sdk use grails $GRAILS_VERSION
  - grails -version
  - sdk current grails

branches:
  only:
    - master

script: sdk use grails $GRAILS_VERSION &&
        grails upgrade --non-interactive &&
        grails clean &&
        grails test-app -integration

问题是,即使是使用 Grails 2.5.3 和 grails 版本的 sdkman 报告也是一样的,当应用程序执行时,我在 Travis-CI UI 上看到了这个:

|Loading Grails 2.4.4
|Configuring classpath
|Running pre-compiled script

它还尝试安装旧版本的插件,而不是我的 BuildConfig 中的版本。

以下是 Travis-CI 构建的完整输出: https://travis-ci.org/ppazos/cabolabs-ehrserver

我是 Travis-CI 的新手,我似乎没有发现问题,非常欢迎任何帮助!

【问题讨论】:

  • 请告诉我,如果我从stackoverflow.com/a/34109788/2514164 更新的.travis.yml 解决了这个问题。如果没有,您是否尝试在 Travis-CI 设置中将 GRAILS_HOME 环境变量设置为 /home/travis/.sdkman/candidates/grails/2.5.3/

标签: grails travis-ci


【解决方案1】:

我之前使用 SDKMAN (AKA GVM) 在 Travis 上构建我的 Grails 项目,但使用 Grails 包装器是一种更可靠、更简单、更快速的解决方案。 Here's my Grails 2.5.1 project 我使用 Grails 包装器构建的 - 注意 Travis 脚本比你的要简单得多,而且因为我不需要在每次构建运行时安装 SDKMAN 和 Grails,它应该会快得多。

您需要做的就是提交 wrapper 目录和脚本 grailswgrailsw.bat - 不要从我的项目中复制它们,使用为 Grails 2.5.3 项目生成的那些(因为自 Grails 2.5.1 以来,它们可能已经改变)。

【讨论】:

【解决方案2】:

主要问题是我在项目根目录中有一个旧的 pom.xml 文件,并且不知道 Travis-CI 正在使用它来构建项目。在我更新了 pom (https://github.com/ppazos/cabolabs-ehrserver/commit/97d080bf9f7459732ca04faac10e6ae96d6ee3b3) 之后,它开始使用正确版本的 Grails v2.5.3,但出现了另一个问题:

我的 /lib 文件夹中有一个 Maven 未加载的 JAR,因此构建失败,因为缺少类。这是我自己开发的内部库,仅供几个项目使用,因此未在任何 Maven 存储库上发布。

在网上查找,找不到任何解决方案,只是让 Maven 考虑我的 JAR。

【讨论】:

猜你喜欢
  • 2015-02-10
  • 2016-06-07
  • 1970-01-01
  • 2015-04-06
  • 1970-01-01
  • 2012-11-30
  • 2014-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多