1

私のbuild.gradleファイルには次のものがあります。

...
dependencies {
  ...
  testCompile (group: 'org.uncommons', name: 'reportng', version: '1.1.2') { exclude group: 'org.testng', module: 'testng' }
  ...
}
...

reportngとが必要velocity-1.4.jarでありvelocity-dep-1.4.jar、実際には上記のtestCompile依存関係により、これら 2 つの JAR がフェッチされ、Eclipse の.classpathファイルに「エクスポート」として配置されます (つまり、Eclipse の [Java ビルド パス] ダイアログの [注文とエクスポート] タブにあるチェックボックス)。がチェックされます)。

これら 2 つの JAR がエクスポート済みとして設定されるという事実は問題です。それらをまだフェッチする必要がありますが、エクスポートする必要はありません。

Gradle docから、これはnoExportConfigurations彼らの例に従って使用することによって行われることを理解しています:

apply plugin: 'java'
apply plugin: 'eclipse'

configurations {
  provided
  someBoringConfig
}

eclipse {

  classpath {

    //if you don't want some classpath entries 'exported' in Eclipse
    noExportConfigurations += configurations.provided
  }
}

私の問題は、configurations {}セクションがないことです。確かにセクションを追加することはできますが、エクスポートから除外するために何を入れればよいかわかりませんreportng

4

2 に答える 2

1

あなたはおそらく次のようなものが欲しいでしょう:

configurations {
    noExport
}
dependencies {
    // replace with correct values
    noExport "foo:velocity:1.4" 
    noExport "foo:velocity-dep:1.4"
}
eclipse {
    classpath {
        noExportConfigurations += configurations.noExport
    }
}

PS: こことhttp://forums.gradle.orgに二重投稿しないでください。

于 2014-02-26T00:39:02.177 に答える
1

どうやら、 Peter の回答から 1 年半が経過したため、noExportConfigurations は廃止され、Gradle 3.0 で削除される予定です。さらに、リンクされた Gradle フォーラム スレッドのソリューションでは、たとえば、war/WEB-INF/lib などのフォルダーからインポートされた依存関係を削除することはできません。

そのため、多くの調査の結果、 GitHub のこの build.gradle ファイルの最後に、クラスパスのエントリを並べ替える例を見つけました。

withXml { xml ->
    def node = xml.asNode()
    node.remove( node.find { it.@path == 'org.eclipse.jst.j2ee.internal.web.container' } )
    node.appendNode( 'classpathentry', [ kind: 'con', path: 'org.eclipse.jst.j2ee.internal.web.container', exported: 'true'])
}

Groovy Node の正規表現機能を使用して JAR ファイルを単純に削除するように例を変更しました。このxml ->部分は不要であり、このエントリはファイル クロージャの子であることに注意してください。

withXml {
    def node = it.asNode()
    node.remove( node.find { it.@path ==~ /.*velocity-1\.4\.jar/ } )
    node.remove( node.find { it.@path ==~ /.*velocity-dep-1\.4\.jar/ } )
}
于 2015-10-27T06:04:23.817 に答える