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


Reply via email to