私は Java ベースの GitHub プロジェクト、fitnessjiffy-springを持っています(現在、「ブートストラップ」ブランチに注力しています)。これは、別の GitHib プロジェクト、 fitnessjiff-etlから構築されたライブラリに依存しています。これらの両方が Travis CI によってビルドされるように構成しようとしています。
残念ながら、Maven ベースの Java プロジェクトを扱う点では、Travis は Jenkins や Hudson ほど洗練されていません。Jenkins はプロジェクト間の依存関係を簡単に処理できますが、Travis には同じ概念が存在しないようです。あるプロジェクトが別のプロジェクトに依存している場合、その他のプロジェクトは以前にビルドされている必要があります...そしてそのアーティファクトは、最初のプロジェクトが後でダウンロードできるMavenリポジトリにアップロードされます。
私の「fitnessjiffy-etl」ライブラリは問題なくビルドおよびデプロイされています。私はMaven リポジトリのホスティングにBintrayを使用しています。プレーンな HTTP 経由でアーティファクトを明確に確認できます。
http://dl.bintray.com/steve-perkins/maven/
私の「fitnessjiffy-spring」プロジェクトでは、この Maven リポジトリの場所を に直接追加してpom.xml
、Travis がアーティファクトの依存関係を見つけられるようにします。 この記事を書いている時点での私の POM の状態は次のとおりです。<repositories>
ファイルの下部にある要素に注意してください。
このプロジェクトをローカルでビルドすると、問題なく動作します。" http://dl.bintray.com/ ..."から Maven アーティファクトをダウンロードしているのがわかります。ただし、Travis CI でビルドしようとすると、毎回失敗します。Travis が、指定したリポジトリではなく、Maven Central からアーティファクトをダウンロードしようとしていることがコンソール ログで確認できます。
これは他の人にとって意味がありますか?Maven がローカルでビルドするときに POM ファイルのカスタム リポジトリの場所を利用するのに、Travis CI ビルドで実行するときにこの構成を無視するのはなぜですか?