我正在使用这个build.grade。当我运行gradlew build
时,它只生成一个包含源文件的jar文件,而不是libs文件夹中的stone.jar。我该怎么做?
apply plugin: 'java'
apply plugin: 'eclipse'
// Source sets in the project, specify source directories
sourceSets {
main {
java.srcDir("${projectDir}/src/")
resources.srcDir("${projectDir}/src/")
}
}
// Dependencies for the project are stored in the libs directory
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
// Control what goes into the JAR
jar {
manifest {
attributes 'Main-Class': 'com.elsea.sublimelauncher.Driver'
}
// Include all the classes except the tests
include("com/elsea/sublimelauncher/**")
}
答案 0 :(得分:4)
默认情况下,gradle中的jar
任务会从项目源文件构建可执行jar文件。它不包含程序所需的任何传递库。它对Web服务器很有用,因为它们通常将所有jar保存在一个特殊的lib文件夹中,但对许多独立程序来说并不好。
您要做的是创建一个胖jar,它将包含单个jar文件中的所有类和资源。 如果您使用Maven,您可以看到像' my-program-v1.0-jar-with-dependcies.jar'
这样的文件gradle有shadow plugin可以做同样的事情。 Wiki在github上包含有关如何在项目中使用它的所有信息。