Gradle does not add transitive dependencies to war's WEB-INF/lib folder

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Gradle does not add transitive dependencies to war's WEB-INF/lib folder

jamsterdam
I have a web project that produces a war. The war adds a jar (another project of mine posted on an external repo) as compile dependency. This jar has its own compile dependency, which is listed in the jar's pom file, as well as in the project's build script (this is a Gradle project). I would like to add the jar, as well as all of its own dependencies to my war's WEB-INF/lib folder. However, when I build the web project with Gradle, only the direct dependency is added, not the transitive ones.

Here is my web project's build script:

apply plugin: 'war'

repositories {    
    maven {url "http://repo-url"}
}

configurations.all {
    resolutionStrategy {
        cacheChangingModulesFor 0, 'seconds'
    }
}

dependencies {

    compile('com.company.group:artifact-name:1.0.0-SNAPSHOT') {
        changing = true
        transitive = true
    }
}
The com.company.group:artifact-name:1.0.0-SNAPSHOT does have its own POM, which lists the following dependency:

<dependency>
<groupId>us.codecraft</groupId>
<artifactId>xsoup</artifactId>
<version>0.2.0</version>
<scope>compile</scope>
</dependency>
Also, I've set cacheChangingModulesFor to 0 seconds, so that, effectively, the latest version of the SNAPSHOT jar is used every time.

The issue I am having is the 'us.codecraft:xsoup:0.2.0' artifact does not get included in the war, even though it is a transitive dependency of the war.

Any thoughts? Ask for more details, if anything is unclear.
Reply | Threaded
Open this post in threaded view
|

Re: Gradle does not add transitive dependencies to war's WEB-INF/lib folder

Luke Daley-2
Hi,

This list is for the discussion of Gradle itself.

Would you mind posting on http://forums.gradle.org?

On 18 March 2014 at 5:48:04 am, jamsterdam ([hidden email]) wrote:

I have a web project that produces a war. The war adds a jar (another project
of mine posted on an external repo) as compile dependency. This jar has its
own compile dependency, which is listed in the jar's pom file, as well as in
the project's build script (this is a Gradle project). I would like to add
the jar, as well as all of its own dependencies to my war's WEB-INF/lib
folder. However, when I build the web project with Gradle, only the direct
dependency is added, not the transitive ones.

Here is my web project's build script:

apply plugin: 'war'

repositories {
maven {url "http://repo-url"}
}

configurations.all {
resolutionStrategy {
cacheChangingModulesFor 0, 'seconds'
}
}

dependencies {

compile('com.company.group:artifact-name:1.0.0-SNAPSHOT') {
changing = true
transitive = true
}
}
The com.company.group:artifact-name:1.0.0-SNAPSHOT does have its own POM,
which lists the following dependency:

<dependency>
<groupId>us.codecraft</groupId>
<artifactId>xsoup</artifactId>
<version>0.2.0</version>
<scope>compile</scope>
</dependency>
Also, I've set cacheChangingModulesFor to 0 seconds, so that, effectively,
the latest version of the SNAPSHOT jar is used every time.

The issue I am having is the 'us.codecraft:xsoup:0.2.0' artifact does not
get included in the war, even though it is a transitive dependency of the
war.

Any thoughts? Ask for more details, if anything is unclear.



--
View this message in context: http://gradle.1045684.n5.nabble.com/Gradle-does-not-add-transitive-dependencies-to-war-s-WEB-INF-lib-folder-tp5712493.html
Sent from the gradle-dev mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email