Java Gradle Jar-包含依赖项';班级

Java Gradle Jar-包含依赖项';班级,java,gradle,jar,dependencies,bundle,Java,Gradle,Jar,Dependencies,Bundle,我正在开发一个服务器应用程序,并使用gradle实现这一点。如果我运行“bundle”,gradle将创建一个jar文件,其中包含我的项目中所有编译的java类。但是,很明显,由于缺少依赖项,您无法运行这个jar 我目前正在完成以下任务: task bundleJar(type: Jar) { manifest { attributes 'Main-Class': 'your.own.start.main.class' } from { configura

我正在开发一个服务器应用程序,并使用gradle实现这一点。如果我运行“bundle”,gradle将创建一个jar文件,其中包含我的项目中所有编译的java类。但是,很明显,由于缺少依赖项,您无法运行这个jar

我目前正在完成以下任务:

task bundleJar(type: Jar) {
    manifest {
        attributes 'Main-Class': 'your.own.start.main.class'
    }
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
}
但这包括“所有”依赖类是否可以只集成我的应用程序所需的类?他们在思考方面有什么问题吗?

我还想到了另一件事。有些库不允许在其他应用程序中发布它们。所以我只向我的用户提供源代码。他们下载并执行gradle任务这应该没问题,不是吗? 是否最好将所有内容都放在一个jar中,还是可以为所需的类创建一个单独的文件夹?


Thx:)

在您的示例中,您执行
配置。编译。收集
,因此您将压缩编译范围内的所有内容。您可以使用从运行时作用域(
configurations.runtime.collect
)声明的类来更改它。当然,这意味着在您进行构建时,这些类已经被下载