Gradleプロジェクトのbuild.gradleからAntを使う方法

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")
}

Gradleプロジェクトのbuild.gradleからAntを使う方法

ant.mkdir

ディレクトリ作成することが出来ます。

task xxx() {
  ant.mkdir(dir:"lib/bin")
}

この場合、lib/binという階層のディレクトリを作成します。

Gradleプロジェクトのbuild.gradleからAntを使う方法

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を使う

コメント

タイトルとURLをコピーしました