プロジェクトを正常にビルドし、必要なすべての成果物をコンパイルする Gradle ビルド スクリプトがあります。
ただし、場合によっては、他の開発者にいくつかのファイルにパッチを適用するオプションを提供したいと考えています。たとえば、アーカイブの 1 つに、データベース フックに関する情報を含む xml ファイルがあります。一部の開発者は、他のバージョン (またはエンジン) を使用しており、ビルド出力を使用する前にこれらを変更する必要があります。
誤ってコミットする可能性があるバージョン管理されたファイルに変更を加える代わりに、ビルド スクリプトが適用するローカルの個別のパッチ ファイルを作成するオプションを提供したいと考えています。
古いantスクリプトでは、次のようなことをしました
<target name="appcontext-patch" if="applicationContext.patch.file">
<patch patchfile="${applicationContext.patch.file}" originalfile="${dist.dir}/applicationContext.xml"/>
</target>
しかし、Gradleで同等のことを行う方法がわかりません。これを への呼び出しに直接変換しようとするよりも、これを行うためのより良い (つまり、より慣用的な) 方法はありant.patch
ますか?
いくつかのコンテキスト
これは、ファイルが最初にアーカイブに入る方法です。
into('META-INF') {
from 'deployment', {
include 'applicationContext.xml'
rename { fn -> "jboss-spring.xml" }
}
}
次のようなことができれば素晴らしいことです
into('META-INF') {
from 'deployment', {
include 'applicationContext.xml'
rename { fn -> "jboss-spring.xml' }
patch 'local/applicationContext.xml.patch'
}
}
ファイルがアーカイブに配置される前に、パッチ ファイルを適用します。これを可能にするコードを書くことは気にしませんが、私は Gradle にまったく慣れていないので、どこから始めればよいかわかりません。