I have the following gradle projects:
jar-module-A
+-- JavaEE lib(Dependency)
war-module-A
+-- jar-module-A
I want to exclude JavaEE l
If the transitive is not working, can try resolution startegy. I was fed up with the transitive or even normal exclude.
https://docs.gradle.org/2.2.1/dsl/org.gradle.api.artifacts.ResolutionStrategy.html
dependencies{
compile(group: 'ruimo', name: 'module_a', version: '1.0-SNAPSHOT')
}
configurations.all {
resolutionStrategy {
force ruimo:module_a:1.0-SNAPSHOT
}
}
Brute force solution would be:
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'maven'
repositories {
mavenCentral()
maven {
url "file:///tmp/repo"
}
}
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file:///tmp/repo")
}
}
}
dependencies {
compile group: 'ruimo', name: 'module_a', version: '1.0-SNAPSHOT'
testCompile group: 'junit', name: 'junit', version: '4.10'
}
war {
classpath = classpath.filter {
it.name != 'javaee-api-6.0.jar'
}
}
for module_b
. It might be filename dependent (not sure of that). Maybe will have a look later on, but not sure - short with time.
UPDATE
More sophisticated:
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'maven'
repositories {
mavenCentral()
maven {
url "file:///tmp/repo"
}
}
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file:///tmp/repo")
}
}
}
dependencies {
compile(group: 'ruimo', name: 'module_a', version: '1.0-SNAPSHOT') {
transitive = false// here You can exclude particular dependency, not necessarily all
}
providedCompile group: 'javax', name: 'javaee-api', version: '6.0'
testCompile group: 'junit', name: 'junit', version: '4.10'
}
No I see it can be done with many ways. It depends on what are other requirements regard build.