1

これを持っているbuild.gradle

apply plugin: 'war'

repositories {
    mavenCentral()
    maven { url "http://repository.jboss.org/nexus/content/groups/public" }
}

configurations {
    providedCompile {
        exclude module: 'commons-httpclient' // here it doesn't work
    }
}

dependencies {
    compile 'commons-httpclient:commons-httpclient:3.1'

    providedCompile ('org.jboss.resteasy:resteasy-jaxrs:2.3.3.Final') {
        //exclude module: 'commons-httpclient' // here it works
    }
}

私はこの戦争を期待しています:

WEB-INF/
WEB-INF/lib/
WEB-INF/lib/commons-httpclient-3.1.jar

しかし、これだけがあります:

WEB-INF/

2nd のコメントを外してexclude1stのコメントを外すとexclude、必要に応じて機能します。

これが予期される動作である場合、提供されたライブラリから特定の推移をグローバルに除外するにはどうすればよいですか?

4

1 に答える 1

5

compile実際には から拡張されているため、これが「正しい」ことであることがわかりprovidedCompileます。

apply plugin: 'war'

configurations.compile.extendsFrom.each {
    println "$it"
}

だから、私の解決策は次のとおりでした:

apply plugin: 'war'

repositories {
    mavenCentral()
    maven { url "http://repository.jboss.org/nexus/content/groups/public" }
}

configurations {
    forceInclude {}
}

dependencies {
    providedCompile 'org.jboss.resteasy:resteasy-jaxrs:2.3.3.Final'

    forceInclude 'commons-httpclient:commons-httpclient:3.1'
}

war {
    classpath += configurations.forceInclude
}
于 2012-10-02T10:08:00.800 に答える