Won't having testCompile extend compileWithExtraStuff result in testRuntime also containing the extra stuff?
~~ Robert. On 9 December 2010 15:51, Adam Murdoch <a...@gradle.biz> wrote: > > On 10/12/2010, at 5:19 AM, Robert Fischer wrote: > > I have a jar that I use to mock some code for compiling, but then do > not want that mock jar on the classpath for runtime: the functionality > is provided by a javaagent. What's the recommended way to handle > this? I'm not sure how to redefine the "runtime" configuration to > exclude the jar, so I tried to implement it by mangling the classpath > of compile tasks: > > configurations { > java7Mock > } > > dependencies { > java7Mock jsr292Mock > } > > tasks.withType(AbstractCompile).allTasks { Task t -> > t.classpath = t.classpath + t.project.configurations.java7Mock > } > > > This approach is a bit too dependent on order, and so you're running into > problems with things being null or empty. > I think the best option is to mess with the compile and runtime classpaths > of the appropriate source sets. Here's an example: > configurations { > extraStuff > compileWithExtraStuff { extendsFrom compile, extraStuff } > } > dependencies { > extraStuff '....' > } > sourceSets.main { > compileClasspath = configurations.compileWithExtraStuff > } > This adds the dependency to the compile classpath only, ie it won't be added > to runtime, testCompile, testRuntime, etc > You could add something like this to include the dependency in the > testCompile and testRuntime classpaths: > configurations { > testCompile { extendsFrom extraStuff } > } > > -- > Adam Murdoch > Gradle Developer > http://www.gradle.org > CTO, Gradle Inc. - Gradle Training, Support, Consulting > http://www.gradle.biz > > --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email