2017-02-24 12 views
0

私は多くの依存関係を持つアプリケーションを持っており、戦争領域を減らしたい。これらの依存関係を除外し、依存関係の.zipファイルを作成したいと思っています。また、このzipファイルをどこに配置するかを知りたいので、Tomcatにデプロイすると正しくピックアップできるようにします。Gradle - Warからの依存関係を除外し、除外された依存関係のzipファイルを作成する

答えて

1

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

+0

にユーバーのjarファイルをコピーすることができこれは、依存関係を除外するが、中の依存関係をパッケージからGradleのを制限するものではありませんでした戦争ファイル –

+0

私はそれを仕事にします。それはブートパッケージの問題でした。私は戦争を作成することができると知っているが、jarファイルは異なるバージョンのtomcatを埋め込んでいる。 $ tomcat/libsフォルダにjarを置くと 'java.lang.NoSuchMethodError:org.apache.tomcat.util.buf.B2CConverter。 (Ljava/lang/String; Z)Vが発生する。埋め込みTwitterを除外するにはどうすればよいですか? –

+0

コンパイル時の依存関係にtomcatが必要なのはなぜですか?私が考えることができるのは、テストのためだけです。この場合、Tomcatの依存関係は 'testCompile'または' testRuntime'設定で宣言されるべきです –

関連する問題