如何在没有插件的情况下将所有包添加到jar中



我在我的项目中添加了这个包,因为我的项目是一个命令行项目

implementation 'info.picocli:picocli:4.6.3'

当我运行项目时,它抛出ClassNotFoundError,就像这个

Exception in thread "main" java.lang.NoClassDefFoundError: picocli/CommandLine
at com.lenovo.cosly.cli.Run.main(Run.java:10)

我在最后一刻使用了名为shadow.jar的插件来解决这个问题,比如这个

plugins {
id 'com.github.johnrengelman.shadow' version '6.1.0'
}

如果没有这个插件,我该如何解决?

有多种方法可以创建;胖罐子";仅使用gradle。例如,您可以修改jar任务:

jar {
manifest {
attributes "Main-Class": "com.baeldung.fatjar.Application"
}
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}

有关详细信息,请参阅本教程:https://www.baeldung.com/gradle-fat-jar

最新更新