3

ビルド ファイルにいくつかの gradle war タスクがあり、war タスクごとに変更したいと考えていwebAppDirNameます。私はこれを試しました:

task myWarTask(type: War) {
    ext.webAppDirName = 'src/anotherfolder/webapp' // also tried just webAppDirName
    version ""
    destinationDir = file("$buildDir/libs")
    baseName = 'myWarName'
    classpath = configurations.myWarConfiguration
}

しかし、これはまだsrc/main/webapp代わりにの内容を引き込んでいますsrc/anotherfolder/webapp

webAppDirNameこのように war ファイルごとに設定できますか?

4

2 に答える 2

6

webAppDirNameプロジェクトごとに 1 つのプロパティしかなく、War プラグインはfromWarタスクに対応する を自動的に追加します。したがって、主な問題はそれを元に戻す方法ですfrom。私は以下がうまくいくはずだと思います:

apply plugin: "war"

webAppDirName = "non/existing/dir"

task myWarTask(type: War) {
    from "src/anotherfolder/webapp"
    ...
}

War別の方法は、タスク タイプのみを使用し、War プラグインを使用しないことです。その後、さらにいくつかのタスク プロパティを構成する必要があり、主に提供された構成と戦争の公開に関連するいくつかの機能が失われます。もちろん、明示的な構成でこれを補うことができます (必要な場合)。詳細に興味がある場合は、War プラグインのソース コードをご覧ください。

PS:webAppDirNameは追加のプロパティ ( ) ではなく、プラグインext.によって追加された規約プロパティです。War追加のプロパティは、ビルド スクリプトでのアドホックな使用のみを目的としています。追加のプロパティを書き込むときに使用ext.しますが、プロパティを読み取るときは省略します。

于 2013-03-14T18:00:17.367 に答える
1
task myWarTask(type: War) {
    from 'src/anotherfolder/webapp'
    version ""
    destinationDir = file("$buildDir/libs")
    baseName = 'myWarName'
    classpath = configurations.myWarConfiguration
}
于 2013-03-13T19:05:42.407 に答える