0
私は多くの依存関係を持つアプリケーションを持っており、戦争領域を減らしたい。これらの依存関係を除外し、依存関係の.zipファイルを作成したいと思っています。また、このzipファイルをどこに配置するかを知りたいので、Tomcatにデプロイすると正しくピックアップできるようにします。Gradle - Warからの依存関係を除外し、除外された依存関係のzipファイルを作成する
私は多くの依存関係を持つアプリケーションを持っており、戦争領域を減らしたい。これらの依存関係を除外し、依存関係の.zipファイルを作成したいと思っています。また、このzipファイルをどこに配置するかを知りたいので、Tomcatにデプロイすると正しくピックアップできるようにします。Gradle - Warからの依存関係を除外し、除外された依存関係のzipファイルを作成する
compileOnly構成の依存関係を宣言して、戦争中にパックされないようにすることができます。そして、あなたはcompileOnly
設定
task uberJar(type: Jar) {
configurations.compileOnly.files.each { File jar ->
from zipTree(jar)
}
classifier = 'uber'
}
artifacts {
archives uberJar
}
からユーバーjarを作成することができ
dependencies {
compileOnly 'a:a:1.0'
compileOnly 'b:b:2.0'
}
次に、あなたは%TOMCAT_HOME%/lib
にユーバーのjarファイルをコピーすることができこれは、依存関係を除外するが、中の依存関係をパッケージからGradleのを制限するものではありませんでした戦争ファイル –
私はそれを仕事にします。それはブートパッケージの問題でした。私は戦争を作成することができると知っているが、jarファイルは異なるバージョンのtomcatを埋め込んでいる。 $ tomcat/libsフォルダにjarを置くと 'java.lang.NoSuchMethodError:org.apache.tomcat.util.buf.B2CConverter。(Ljava/lang/String; Z)Vが発生する。埋め込みTwitterを除外するにはどうすればよいですか? –
コンパイル時の依存関係にtomcatが必要なのはなぜですか?私が考えることができるのは、テストのためだけです。この場合、Tomcatの依存関係は 'testCompile'または' testRuntime'設定で宣言されるべきです –