Gradle war プラグインで war ファイル名を指定する

blog1.mammb.com

何も指定しなければ、warモジュール名が使われる。 foo モジュールであれば foo.war のように。

Groovy DSL の場合は、以下のように直接war名を指定できてわかりやすい。

war {
  archiveName = 'myname.war'
}


Kotlin DSL の場合は工夫が必要。

以下のように無理やり指定するか、

war {
  setProperty("archivesBaseName", "myname")
}

Base Plugin の archivesName で指定する。

base.archivesName.set("myname.war")

Base Plugin の archivesName は Jar タスクなどの親である AbstractArchiveTask.getArchiveBaseName() から参照されるため、war 名やソースJar や JavadocJar などの名前にも反映される。

settings.gradle.ktsrootProject.name = "myname" のように指定している場合は、以下のように設定すれば良い。

base.archivesName.set(rootProject.name)