2016-03-25 15 views
1

署名されたJarに固有のセキュリティ例外が原因で、gradleがtomcatでロードできないという問題が発生しています。スタックトレースは、どのジャーが問題を引き起こしているのかを表示していないし、このことを実行するために戦争が構築されているときに私はビルドの署名を除外することができますが、Gradleでそれを行う方法を知らないのだろうかと思っています。私はそれが<filter><exclude>タグであると信じていますが、このタイプのものがGradleで利用可能かどうかはわかりません。どんな入力も認められますが、投げられる例外は以下の通りです。 jarファイルが署名されている場合、あなたはどのzipユーティリティツールを使用してjarファイルを解凍することができます見つけるためにGradleビルドでJarシグネチャを削除する

Caused by: java.lang.SecurityException: Invalid signature file digest for 
+1

'jar'を参照するときは、サードパーティ製のライブラリ、またはGradleビルド中にビルドされた独自のjarファイルを参照していますか? – pczeus

+1

また、どのように戦争を築いていますか?あなたはjarsなどをコピーして戦争を作成することで手動でやっているのですか、あるいはあなたは '戦争'プラグインのようなプラグインを使用していますか? – pczeus

答えて

1

。 jarが署名されている場合、META-INFフォルダーの下に* .RSA、* .SF、* .DSAなどのファイルが含まれます。

これらのシグネチャファイルをgradleビルドで除外するには、build.gradleで次のようにしました。 jarを作成するために他のプラグインを使用している場合は、そのプラグインのドキュメントで詳細を確認してください。

jar { 
from { (configurations.runtime).collect { it.isDirectory() ? it : zipTree(it) } } { 
    exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA' 
} 
manifest { 
    attributes("Main-Class": "com.nk.social.shareit.streams.AppMain") 
}} 

私の全体のbuild.gradleファイルの下にリストされているようである: -

apply plugin: 'scala' 

dependencies { 
    compile group: 'org.apache.kafka', name: 'kafka-streams', version: '0.11.0.1' 
    compile 'org.scala-lang:scala-library:2.12.2' 
    compile 'com.sksamuel.elastic4s:elastic4s-core_2.12:5.4.2' 
    compile 'com.sksamuel.elastic4s:elastic4s-http_2.12:5.4.2' 
    compile 'org.apache.lucene:lucene-core:6.5.1' 
    compile 'joda-time:joda-time:2.9.9' 
    testCompile group: 'org.scalatest', name: 'scalatest_2.12', version: '3.0.4' 
} 


jar { 
    from { (configurations.runtime).collect { it.isDirectory() ? it : zipTree(it) } } { 
     exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA' 
    } 
    manifest { 
     attributes("Main-Class": "com.nk.social.shareit.streams.AppMain") 
    } 
} 

・ホープ、このことができます。

関連する問題