特定の値が定義されているときにタスクを実行させようと苦労しています。定義されたプロパティでのみ実行するタスクを実行する
私はGradle 3.5を使用しています。
task signJar(type: SignJar, dependsOn: reobfJar) {
onlyIf {
project.hasProperty('mod_keystore')
}
keyStore = project.keyStore
alias = project.keyStoreAlias
storePass = project.keyStorePass
keyPass = project.keyStoreKeyPass
inputFile = jar.archivePath
outputFile = jar.archivePath
}
ご覧のとおり、私はすでにonlyIfステートメントを試しましたが、タスクはまだ実行されています。定義された場所
Could not get unknown property 'keyStore' for root project 'JustAnotherEnergy' of type org.gradle.api.Project.
プロパティ「mod_keystoreは」はあるが、コードの取得の実行:これはクラッシュになりません。
task signJar(type: SignJar, dependsOn: reobfJar) {
if(project.hasProperty('mod_keystore')) {
keyStore = project.keyStore
alias = project.keyStoreAlias
storePass = project.keyStorePass
keyPass = project.keyStoreKeyPass
inputFile = jar.archivePath
outputFile = jar.archivePath
}
}
これは機能します。コードは実行されませんが、他の問題が発生しています: プロパティ 'mod_keystore'が定義されていない場合、Gradleは 'keyStore'プロパティの値を設定できませんが、 SignJarでは、この値を設定する必要があります。
これは、プロパティ 'mod_keystore'が定義されている場合にのみ、このタスクを実行する必要があることを意味します。定義されていない場合、タスクはスキップする必要があります。