要確定jar文件是否已簽名,可以使用任何zip實用工具解壓縮jar文件。如果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")
}
}
希望這有助於。
當你引用'jar'時,你指的是第三方庫,還是你自己的Gradle構建期間生成的jar? – pczeus
另外,你是如何建立戰爭?你是通過複製罐子等手動進行的,然後創建戰爭,還是使用像'war'插件這樣的插件? – pczeus