我有一个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