我有一個Gradle項目,它具有一些第三方依賴關係。向Gradle添加SQLServer依賴項後,jar無法找到Main類
我的jar一直工作正常,直到我添加SQLServer依賴項。
這裏的build.gradle的快照:
group 'MyApp'
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'idea'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile 'com.amazonaws:aws-java-sdk:1.11.60'
compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.6'
compile files('mylibraries/ojdbc7.jar')
compile files('mylibraries/postgresql-42.1.4.jar')
compile files('mylibraries/mssql-jdbc-6.2.1.jre8.jar')
}
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
manifest {
attributes 'Main-Class': 'MainLauncher'
}
}
一切都打破了compile files('mylibraries/mssql-jdbc-6.2.1.jre8.jar')
已經被添加到依賴關係之後。我得到的錯誤:
Error: Could not find or load main class MainLauncher
什麼可能是一個潛在的問題?謝謝!
構建jar - 解壓縮它('jar -xvf')並驗證META-INF/MANIFEST.MF文件 - 如果一切正常。這是一個手工創建jar文件的機會。另外還有一個Gradle的插件 - 經過很好的測試,並且能夠正確地建立fat jar。爲什麼'MainLauncher'沒有包名? –
Opal
謝謝你的回覆,歐泊。有趣的是,只有一個特定的庫崩潰了整個執行過程。除此之外,一切正常。我已經通過使用另一個開源解決方案解決了一個問題。沒有包名稱,因爲MainLauncher文件位於'java'文件夾的根目錄中。 – NickitaX