Info:Windows 7でGradle 2.14を使用して、Javaマルチプロジェクトを構築する。Gradle for Jenkinsの条件付き依存関係を使用する最良の方法
自分のマシンにビルドするときに、私のマシン上でライブラリ/サブプロジェクトを使いたいと思っています。 ジェンキンスはプロジェクトを構築するときに、自分のリポジトリからライブラリ/サブプロジェクトを使用しなければなりません。
私は私のIFステートメントのためだけに存在する "JenkinsTask"を作った。これはすでに私が望むようにほとんど機能しています。ここに私のルートのプロジェクトのGradleスクリプトからのコードは:私のマシン上で
task JenkinsTask() {
//doing nothing
}
def ProjectB_Version //defined on command line
gradle.taskGraph.whenReady {taskGraph ->
if (taskGraph.hasTask(JenkinsTask)) {
println "Archiva dependency"
dependencies {
compile group: 'Lib_ProjectB', name: 'ProjectB', version: ProjectB_Version
}
}
else {
println "Filesystem dependency"
dependencies {
compile fileTree(dir: 'ProjectB\\build\\libs', includes: ['*.jar'])
}
}
}
compileJava.dependsOn ":ProjectB:build"
私はちょうど私がgradle :build jenkinstask -x :ProjectB:build -PProjectB_Version=0.5
実行ジェンキンスでgradle build -PProjectB_Version=0.5
を実行して今すぐ質問である「Gradleの」方法には、存在する場合これを行う?ですから、if/else文は必要なく、おそらく "-x"パラメタJenkinsコマンドラインを放棄することもできます。特に "Jenkinstask"はハックのように感じます。
ありがとうございます。