1

Gradle JAR (メイン) プロジェクトがあります。メイン JAR と一緒にパッケージ化したい他の commons-io jar (依存) があります。以下で試してみましたが、メイン JAR を逆コンパイルすると、.jar 拡張子が付いた libs フォルダー内のすべての依存 JARS が表示されます。

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

私が欲しいのは、すべての依存 JAR からメイン JAR へのクラス ファイルです。メイン JAR が複数のプロジェクトで使用されるため、これを行っています。そのため、依存するすべての JAR を含める必要はありません。

ありがとう

4

2 に答える 2

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'
  }
}
于 2014-04-05T07:53:44.167 に答える
-1

これを使って。

into(libForderName){
        from {
            configurations.compile.collect {
                it.isDirectory() ? it : it.getAbsoluteFile()
            }
        }
    }
于 2017-06-09T06:19:21.017 に答える