我正在处理服务器应用程序并使用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
}
但这包括" ALL"依赖类。 可以只集成我的应用程序所需的类吗?他们有任何反思问题吗?
我想到的另一件事。有些图书馆不允许在另一个应用程序中发送它们。所以我只向我的用户提供源代码。他们下载并执行gradle任务。 这应该没关系,不应该吗? 在一个jar中包含所有内容是否更好,还是可以为所需的类创建一个单独的文件夹?
THX:)
答案 0 :(得分:0)
在您的示例中,您执行configurations.compile.collect
,因此您将从编译范围中压缩所有内容。您可以使用从运行时范围(configurations.runtime.collect
)声明的类来更改它。确定这意味着在进行构建时已经下载了这些类。