Gradle を使用して、.xml ファイルを含む jar ファイルをビルドしていますMETA-INF
。このファイルには次のような行があります
<property name="databasePlatform" value="${sqlDialect}" />
環境ごとに異なる SQL データベースを使用できるようにします。${sqlDialect}
プロジェクトのプロパティから展開するようgradleに伝えたいです。
私はこれを試しました:
jar {
expand project.properties
}
しかし、Jarタスクがファイル内のGroovyRuntimeException
プロパティも展開しようとするように思えます。.class
それで、私は試しました
jar {
from(sourceSets.main.resources) {
expand project.properties
}
}
上記の例外はスローされませんが、代わりにすべてのリソースが 2 回コピーされます。1 回はプロパティ拡張あり、もう 1 回はなしです。私はこれを回避することができました
jar {
eachFile {
if(it.relativePath.segments[0] in ['META-INF']) {
expand project.properties
}
}
}
私のユースケースでは、META-INF
ディレクトリ内のファイルのプロパティを展開するだけでよいので、これは私が望むことを行います。しかし、これはかなり醜いハックのように感じます。これを行うより良い方法はありますか?