我有Gradle JAR(主要)项目。我有其他的公共 - io罐子(依赖),我想用Main JAR打包它们。我在下面尝试过,但是当我对主JAR进行反编译时,我在libs文件夹中看到所有依赖的JARS,其扩展名为.jar。
jar {
from("$projectDir") {
include 'libs/**'
}
}
我想要的是从所有依赖JAR到Main JAR的类文件。我这样做是因为Main JAR将被多个项目使用。这样,我就不必包含所有依赖的JAR。
由于
答案 0 :(得分:2)
据我所知你不能将其他罐装入单罐中。您需要做的是提取所有jar并将内容打包到单个文件中。
以下代码为声明的依赖项准备了这样的jar
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
compile 'com.google.guava:guava:16.0.1'
compile 'com.google.inject:guice:3.0'
}
task fatJar(type: Jar, dependsOn: jar) {
baseName = project.name + '-fat'
deps = configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) }
from(deps) {
exclude 'META-INF/MANIFEST.MF'
}
}
答案 1 :(得分:-1)
使用它。
into(libForderName){
from {
configurations.compile.collect {
it.isDirectory() ? it : it.getAbsoluteFile()
}
}
}