如何将libs文件夹中的jar包含到另一个jar中?

时间:2014-04-04 22:54:49

标签: gradle android-gradle build.gradle gradle-eclipse

我有Gradle JAR(主要)项目。我有其他的公共 - io罐子(依赖),我想用Main JAR打包它们。我在下面尝试过,但是当我对主JAR进行反编译时,我在libs文件夹中看到所有依赖的JARS,其扩展名为.jar。

jar {
    from("$projectDir") {
        include 'libs/**'
    }
}

我想要的是从所有依赖JAR到Main JAR的类文件。我这样做是因为Main JAR将被多个项目使用。这样,我就不必包含所有依赖的JAR。

由于

2 个答案:

答案 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()
            }
        }
    }