hi, I have a multi project build. the upstream is a java project that produces 2 jar artifacts. The 2nd artifact is generated with:
task customJar(type: Jar, dependsOn: customTaskClasses) { classifier = 'custom' from sourceSets.customTask.classes includes = ["com/**"] excludes = ["**/client"] } artifacts { archives customJar } The downstream project is a war project, with a default war task and an additional war task, generating 2 war artifacts. It has a dependency on the upstream, declared as: compile project(":upstream") customWar project(":upstream") The default war artifact requires the default artifact from upstream, but NOT the customJar. The customWar requires both artifacts. How would I exclude the customJar artifact from the default war? I have tried the following: // exclude filter on war task. war { excludes = ["**/*-custom.jar"] } // setting the dependency based on the upstream's runtime configuration: compile project(path: ":upstream", configuration: "runtime") // fails with "configuration not public" - http://comments.gmane.org/gmane.comp.programming.tools.gradle.user/7252 // setting the dependency to the upstream's main classes: compile project(":upstream").sourceSets.main.classes // transitive dependencies are not resolved - classpath issues result in classnotfound exceptions. Perhaps a war.doLast that repacks the war, filtering out the custom jar? Regards,