Ответ 1
Включение кэширования в Travis CI путем добавления
cache:
directories:
- $HOME/.m2
to .travis.yml
оказалось не решением вообще или только временным (около 40 сборок за последнюю неделю, потому что mvnsearch.org снова стал доступен или по другим причинам трудно понять), я нашел следующее более многообещающее решение (это проще, чем создание экземпляра менеджера хранилища Nexus, который может использоваться как зеркало):
Добавить
- echo -e '<?xml version="1.0" encoding="UTF-8"?>\n<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0"\n xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n <mirrors>\n <mirror>\n <id>mvnsearch-unavailable</id>\n <name>mvnsearch-unavailable</name>\n <mirrorOf>mvnsearch</mirrorOf>\n <url>http://repo1.maven.org/maven2</url>\n </mirror>\n </mirrors>\n <profiles>\n <profile>\n <id>no-mvnsearch</id>\n <repositories>\n <repository>\n <id>mvnsearch</id>\n <url>http://www.mvnsearch.org/maven2</url>\n <releases>\n <enabled>true</enabled>\n </releases>\n <snapshots>\n <enabled>true</enabled>\n </snapshots>\n </repository>\n </repositories>\n </profile>\n </profiles>\n <activeProfiles>\n <activeProfile>no-mvnsearch</activeProfile>\n </activeProfiles>\n</settings>' > $HOME/.m2/settings.xml
- cat $HOME/.m2/settings.xml
to .travis.yml
, который переопределит использование http://www.mvnsearch.org/maven2
в любом жестком управлении транзитивной зависимостью и использует центральный репозиторий Maven http://repo1.maven.org/maven2, который охватывал все зависимости в моем случае (это может быть не в других случаях).
Обратите внимание, что закон Мерфи применим так же, как к чему-либо: Maven 3.1.1 игнорирует этот параметр, даже если он утверждает, что использует его в своем отладочном выходе (ouch!).
Теперь сборка на 7 минут быстрее, чем при использовании временного рабочего кэширования.