作業中のプロジェクトでCIを設定しようとしていますが、実際にはgradlew
やgradle.bat
のファイルをコミットする必要があるのでしょうか?travis CIが動作するにはgradlewは必須ですか?
これには回避策がありますか、それともこれらのファイルをコミットするのが唯一の方法ですか?
作業中のプロジェクトでCIを設定しようとしていますが、実際にはgradlew
やgradle.bat
のファイルをコミットする必要があるのでしょうか?travis CIが動作するにはgradlewは必須ですか?
これには回避策がありますか、それともこれらのファイルをコミットするのが唯一の方法ですか?
はトラヴィスCIでGradleのプロジェクトを構築するために必須ではありません。
おそらく最良の選択肢は、Gradleのラッパーをインストールするには、プリインストールのGradleを使用することです。あなたは、標準のトラヴィス記述子でこのビルドファイルを使用する場合、それは動作しません
apply plugin: 'java'
check.doFirst {
println "Running gradle v${project.gradle.gradleVersion}"
}
task wrapper(type: Wrapper) {
gradleVersion = '3.4.1'
}
:これはどのように見えるかの簡単なbuild.gradle
です。ビルドを実行するには、単にgradle
を使用します。しかし、あなたは、ディスクリプタにwrapperタスクを追加する場合:
language: java
jdk:
- oraclejdk8
before_install:
gradle wrapper
トラヴィスはgradlew
が存在していることを検出し、ビルドを実行するためにそれを使用正しく、最初のラッパータスクを実行します。
ただし、この方法にはビルドを壊す可能性があるという欠点があります。あらかじめインストールされたGradleバージョンの後に実装されたGradleの一部の機能を使用すると、gradle wrapper
のステップが失敗します。そのような機能の例は、v2.4で導入されたS3 mavenリポジトリです。
task wrapper(type: Wrapper) {
gradleVersion = '3.4.1'
}
をまたに.travis.yml
ファイルを変更します:
これを防ぐために、あなたは別のビルドファイルへのラッパータスクを移動することができ、のがwrapper.gradle
を言わせ
language: java
jdk:
- oraclejdk8
before_install:
gradle -b wrapper.gradle wrapper
これはそれを行う必要があります。このセットアップでは、あらかじめインストールされたGradleを使用して、メインビルドスクリプトを変更せずにラッパーをインストールします。
example build hereとthis is the whole GitHub repositoryが表示されます。
注:別の方法があります。 before_install
の手順を使用して、ダウンロード可能なディストリビューションから、またはおそらくDebianパッケージシステムを使用して、必要なGradleバージョンをインストールすることができます。しかし、それにはsudo
特権が必要です。このような仮想マシンは起動に時間がかかります(約30秒?)。
もう1つのことは、別の回答のコメントで言いました。gradlew
スクリプトをコミットすると、ラッパーのjarとプロパティも必要になります。 jarファイルはバイナリファイルであり、それをバージョン管理に入れることは、時には議論の余地があると見なされます。したがって、上記のソリューションを使用する場合は、gradle
フォルダーのコミットを省略することもできます。
JavaプロジェクトとAndroidプロジェクトの場合、すでにpre-installedですので必須ではありません。
ただし、インストールされたバージョンが、仮想マシンが作成された日付に依存している可能性があります(古くなった可能性があるため)。
gradle --version
コマンドでversionを確認してください。
更新#1
私は私の答えはあなたのMaterialSearchViewをフォーク正しいことを証明した:
Gradleのバージョン2.2.1のGradleラッパーは必須ではありませんが、ので、既にプレインストールされてあなたのプロジェクトにはバージョン2.14.1が必要なので、お勧めの方法です。
script:
- gradle clean build
また、選択された回答が正しいと誤った仮定に基づいていることも示しています。不要なファイルを使用してビルドを中断しても、このファイルは必須ではありません。それを使用せずにchmod行を削除してください。
あなたはあなたのケースで、バージョン2.2.3プラグイン、それぞれのGradleプラグインのバージョンのhere必要なのGradleのバージョンを確認することができますGradleの2.14.1+
推奨事項はスクリプトだけではないことに加えておくことが重要です。 'jar'と' properties'もコミットする必要があります。多くの人は、バイナリファイルをバージョン管理にコミットするのは好きではありません。 – sm4
を必要とはい、これらのファイルが必要です。
少し試行錯誤してこれを決めました。私は私の個人的なプロジェクトの1つの支店からそれらを削除し、それらをGitHubにプッシュし、travisビルドは失敗しました。
ログがどのように表示されているのかわからない場合は、check this gist。
あなたは底部付近に見ることができるように、これは失敗し、エラーです:
chmod: cannot access `gradlew': No such file or directory
The command "chmod +x gradlew" failed and exited with 1 during .
マイナー編集:私はgradlew.batファイルgradlewファイルとそれを使用してみましたが、ありません。これは、単純なクリーン/ビルドのために働いたが、トラヴィスは、エミュレータを起動しようとしたとき、それは10分以上ハング。
TL; DRは両方のファイルを使用します。 gradlew
スクリプトをコミット
https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:wrapper_generation – petey
唯一の方法かどうかはわかりませんが、自分のレポが設定されている方法ですアップ。 –
あなたのシステムとシステム変数にgradleがインストールされていれば、それを実行することが可能かもしれない、という友人に教えてください。しかし、私はそれが異なったグラデルバージョンのプロジェクトのために働くとは思わない... – Mauker