2

gradle-1.3 バージョンを使用して FAT jar を構築し、以下のプロパティを使用して FAT jar を構築しています

jar {
    from configurations.compile.collect { it.isDirectory() ? it : zipTree(it)
 }

以下の依存関係

dependencies {
  compile fileTree(dir:'/trunk/Solutions/Seismic/Source/Binaries/CommonFunctions/build/libs', include: '*.jar')
  compile "org.apache.hadoop:hadoop-core:1.0.3"
  compile "commons-collections:commons-collections:3.2.1"
  compile "commons-configuration:commons-configuration:1.6"
  compile "commons-discovery:commons-discovery:0.2"
  compile "commons-lang:commons-lang:2.4"
  compile "commons-logging:commons-logging:1.1.1"
  compile "commons-logging:commons-logging:1.0.4"
  compile "log4j:log4j:1.2.16"
  compile "com.vividsolutions:jts:1.8"
  compile "commons-net:commons-net:1.4.1"
  compile "org.apache.hadoop:hadoop-core:1.0.3"
  compile "commons-httpclient:commons-httpclient:3.0.1"
  compile "org.mortbay.jetty:servlet-api:2.5-20081211"
  compile "org.apache.hbase:hbase:0.94.0"
  compile "org.apache.zookeeper:zookeeper:3.4.3"
}

ただし、jar は次の jar を参照として含まれています

ジェイ、
jline、
jni、
jnr、
jruby、
junit、
junit3.8.1

しかし、私はこれらの瓶を含めたくありません

4

1 に答える 1

3

これをビルドの最後に追加することで、依存関係を除外できます。

configurations.all*.dependencies*.withType(ModuleDependency)*.each {
  it.exclude group: "org.jline", module: "jline"
  it.exclude ...
}

これにより、すべての構成の依存関係が繰り返され、含めたくないモジュールが除外されます。

すべての推移的な依存関係を除外する場合は、コンパイル構成で推移性を false に設定する方が簡単です。

configurations.compile.transitive = false
于 2012-12-04T15:28:39.853 に答える