在 Travis 中测试 Grails 2.5.3 应用程序-CI 尝试使用 Grails 2.4.4

Testing a Grails 2.5.3 app in Travis-CI tries to use Grails 2.4.4

我有一个基于 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

问题是即使 sdkman 报告使用 Grails 2.5.3 和 grails 版本也是如此,当应用程序执行时,我在 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,我似乎没有发现问题,非常欢迎任何帮助!

我以前使用 SDKMAN(又名 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 以来它们可能已经改变)。

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

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

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