web-dev-qa-db-ja.com

「ジョブがジョブの最大時間制限を超えたため、終了しました。」の回避方法Travis CIでmvnsearch.orgにアクセスする場合

約から72h TravisCIでThe job exceeded the maximum time limit for jobs, and has been terminated.を取得しています。これは、mvnsearch.orgからのアーティファクトのリクエストに関連しているようです。 https://travis-ci.org/document-scanner/document-scanner-aggregator/builds/266942578 。私は使用していないリモートリポジトリだと思いますが、プロジェクトの依存関係の一部はそうです。

mavensearch.orgにアクセスできないか、応答が非常に遅いようです。運用状況に関するニュースはありません。 72h以内に問題が修正されないのは奇妙なので、私は長時間の問題を想定しています。

考えられる唯一の解決策は、MavenプロキシのダウンロードとインストールをTravis CIビルドスクリプトとプロキシmavensearch.orgに追加し、Maven settings.xmlファイルに追加することです。これを回避する方法はありますか?

~/.m2/settings.xmlmirror要素を使用しても機能しません。これは、参照されたPOMのリポジトリIDを参照するためです。すべてのバージョン変更後に最終的に調整されます。

23
Karl Richter

追加して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

.travis.ymlに変更すると、推移的な依存関係を制御し、Mavenセントラルリポジトリを使用する場合のhttp://www.mvnsearch.org/maven2の使用が上書きされます http://repo1.maven.org/maven2 すべてをカバーします私の場合の依存関係(他の場合ではない可能性があります)。

マーフィーの法則はすべてに適用されることに注意してください。Maven3.1.1は、デバッグ出力(ouch!)でミラーを使用すると主張している場合でも、この設定を無視します。

ビルドは、一時的に機能するキャッシングソリューションよりも7分速くなりました。

3
Karl Richter

いくつかのアクションを実行できます。

  1. 一般的なビルドの問題:ビルドがタイムアウトします-Travis CI 答えはいくつかの解決策を提供します。それらの1つは "Mavenプロセスの待機時間を延長する" です。
  2. Maven依存関係のキャッシュを有効にします: キャッシュの依存関係とディレクトリ:キャッシュディレクトリ(バンドル、依存関係):任意のディレクトリ-Travis CI
  3. リポジトリマネージャーを使用します: "パブリックMavenリポジトリの専用プロキシサーバーとして機能する"
    その他の参照:
    1. Nexusの例:
    2. 一般的な質問: mavenリポジトリーをどのようにミラーリングしますか?
9
Sergey Brunov