使用 gradle 打包 jar 包时,貌似如果依赖的 jar 包过多,执行 jar 包时就会报找不到或无法加载主类怎么办?

小弟目前想要开发调用 KETTLE 作业的程序,由于需要引用 KETTLE 中所有依赖 jar 包,打包完的 jar 包大小约有 160M 。结果执行时报错“错误: 找不到或无法加载主类”。gradle 结构非常简单,如下:

plugins {
    id 'org.jetbrains.kotlin.jvm' version '1.4.21'
    id 'com.github.johnrengelman.shadow' version '6.1.0'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib"
    compile fileTree(dir:'/Users/xxl/data-integration8.2/lib',include:['*.jar'])
}

jar {
    from { configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
    //设置 zip64,避免报 65535 错误
    zip64 true
} 

只要将 compile fileTree(dir:'/Users/xxl/data-integration8.2/lib',include:['*.jar'])注释,或者减少依赖 jar 包数量,执行就可以正常(不过就会因为缺少依赖报 java.lang.NoClassDefFoundError 了 T.T )

请问这种情况如何处理呢,非常感谢

阅读 3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题