アプリケーションの展開に必要な特定の構成ファイルを生成する Gradle タスクを作成しています。生成されたファイルの名前と場所をユーザーがカスタマイズできるようにしたいと思います。
タスク クラスの大まかなスケッチは次のようになります。
class ConfigurationFileTask extends DefaultTask {
String configFileName = 'config.xml'
File configFilePath = new File(project.buildDir, configFileName)
}
アイデアは、ユーザーが必要に応じてファイル名またはファイルの場所全体を上書きできるようにすることです。
project
上記のコードは実際には機能しないことに気付きましたconfigFile
。私の問題は、これを行う正しい方法を見つけ出すことです。
ここで、タスクをより広いビルドで良き市民にしたいと考えています。つまり、他のタスクがそのプロパティを参照できるようにする必要があります。たとえば、ユーザーが次のように書けるようにしたいと思います。
task createConfigFile(type: ConfigurationFileTask) {
configFileName = 'app-config.xml'
}
jar {
from(createConfigFile.configFilePath)
}
jar.dependsOn createConfigFile
そして、生成された構成ファイルをjarに追加します。この場合、ユーザーは を設定していますがconfigFileName
、 を参照していることに注意してくださいconfigFilePath
。つまり、名前が設定された後、しばらくしてからパスを計算する必要があります。
では、ユーザーが設定できるが、別のプロパティに基づくデフォルトを持ち、そのプロパティが他のタスクで使用できる場所を提供するにはどうすればよいでしょうか?