Пропуснете първата инсталация на 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