Пропустить первую установку mvn в travis-ci

У меня проблемы с созданием проекта с maven на travis-ci, потому что travis запускается автоматически

mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V

который терпит неудачу из-за тайм-аута:

No output has been received in the last 10 minutes, this potentially
indicates a stalled build or something wrong with the build itself

Согласно документации, я должен иметь возможность переопределить его, определив собственный скрипт в .travis.yml, но это не работает, вот моя конфигурация:

  sudo: false
  language:
    - java
  script: "travis_wait mvn -T4 -pl quickfixj-codegenerator install"
  jdk:
    - oraclejdk8
  env:
    - MAVEN_OPTS="-Xms2048m -Xmx=2048m"
  branches:
    only:
      - travis-ci-build

Есть ли способ избежать автоматической установки mvn или настроить ее?


person Luca Burgazzoli    schedule 11.08.2015    source источник


Ответы (3)


Это упоминается в документации:

http://docs.travis-ci.com/user/customizing-the-build/#Skipping-the-Installation-Step

Вы можете полностью пропустить этап установки, добавив в свой .travis.yml следующее:

install: true

Шаг install выполняется перед шагом script, и с Maven вам обычно не нужен шаг install, по крайней мере, я лично никогда не находил его полезным — Maven все равно будет загружать зависимости на шаге script.

person gvlasov    schedule 04.11.2015
comment
Это правда, но это не решает проблему, так как настройки mavenrc переопределяют любые настройки памяти, которые вы можете установить с помощью env, поэтому сборка завершится ошибкой, поэтому вам нужно пропустить установку и использовать собственный скрипт для установки правильной среды. - person Luca Burgazzoli; 04.11.2015
comment
Вместо выполнения true мне нравится выполнять echo Skipping install step, который выполняет то же самое, но также выводит информационное сообщение. - person Christopher; 17.08.2019

Я была такая же проблема. Это было решено после некоторого обсуждения с поддержкой Travis CI. Вот их ответ:

Эта команда maven запускается как часть раздела установки вашей сборки, она используется по умолчанию.

Если вы хотите пропустить этот шаг, вы можете переопределить его, добавив это в свой файл .travis.yml:

install: /bin/true

person cthiebaud    schedule 09.09.2015
comment
Основная проблема заключается в том, что maven загружает /etc/mavenrc, который устанавливает минимальную/максимальную память, и это вызывает проблемы, если для вашей сборки требуются пользовательские настройки. В итоге я написал это - person Luca Burgazzoli; 03.11.2015

Я обнаружил, что полезно иметь шаг install: mvn dependency:resolve, который загружает зависимости сборки заранее, чтобы выходные данные фактического сценария сборки оставались чистыми.

person Liam Williams    schedule 25.09.2016