Gradleプロジェクトのbuild.gradleからAntを使う方法
Gradleプロジェクトでビルドする際に自動的にファイルを修正したい場合や標準出力したい場合にAntプラグインが用意されています。
ant.replaceregexp
正規表現を使って文字列置換することが出来ます。
task xxx() { ant.replaceregexp(file: "src/main/resources/application.yml", match: "fuga", replace: "hoge", byline: "true", encoding: "UTF-8") }
オプション | 指定する値 |
---|---|
file | 置換したいファイル |
match | 正規表現で置換対象文字列 |
replace | 置換後文字列 |
byline | 全行対象かどうか。デフォルト:false |
encoding | 未指定時JVMのデフォルト値 |
bylineでtrueにすると全行に対して置換処理を行っていきます。
ant.echo
標準出力することが出来ます。
task xxx() { ant.echo(message: "start") }
ant.mkdir
ディレクトリ作成することが出来ます。
task xxx() { ant.mkdir(dir:"lib/bin") }
この場合、lib/binという階層のディレクトリを作成します。
ant.copy
ファイルをリネームしてコピーします。
task xxx() { ant.copy(file:"src/main/resources/application.yml", tofile:"src/main/resources/application.yml.bak") }
オプション | 指定する値 |
---|---|
file | コピーしたいファイル |
tofile | コピーしたファイル名 |
todir | コピー先ディレクトリ |
fileとtofileでファイルコピーすることが出来ます。
ファイルを新しいディレクトリ配下にコピーしたい場合は、fileとtodirを指定します。todirにはディレクトリを指定します。
task xxx() { ant.copy(file:"src/main/resources/application.yml", todir:"src/main/resources/bak/") }
filesetを使用することで複数ファイルをコピーすることも可能です。
task xxx() { ant.copy(todir:"src/main/resources/backup/"){ fileset(dir: "src/main/java/") // コピー対象 } }
todir、dirにはディレクトリを指定します。
fileset内でexcludeを指定して、一部のファイルを除外することが出来ます。
task xxx() { ant.copy(todir:"src/backup/"){ // コピー先 fileset(dir: "src/main/"){ // コピー対象ディレクトリ exclude(name: "src/main/resources/**") // 除外対象 } } }
ant.move
moveでファイルやディレクトリを移動させることが出来ます。
オプション | 指定する値 |
---|---|
todir | 移動先ディレクトリ |
task xxx() { ant.move(todir:"src/backup/"){ fileset(dir: "src/main/java/"){ exclude(name: "src/main/resources/**") } } }
ant.delete
deleteでファイル削除することが出来ます。copy同様filesetを使用することも可能です。
オプション | 指定する値 |
---|---|
file | 削除対象ファイル |
dir | 削除対象ディレクトリ |
task() { ant.delete(file:"src/main/resources/application.yml") ant.delete(dir:"src/backup/") }
ディレクトリを削除する場合はdirを指定します。ファイルを削除する場合はfileを指定します。
第17章 GradleからAntを使う
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント