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
  }

That, however, fails with the following message:

  Cause: Failed to notify action.
  Cause: Cannot invoke method plus() on null object

So I tried this:

  tasks.withType(AbstractCompile).allTasks { Task t ->
    if(t.classpath) {
      t.classpath = t.classpath + t.project.configurations.java7Mock
    } else {
      t.classpath = t.project.configurations.java7Mock
    }
  }

I figured that the other necessary dependencies would be queued up
later, but I actually didn't get anything *but* the java7Mock at that
point.

So, recommendations as to how to approach this?  Am I going about it all wrong?

~~ Robert.

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

    http://xircles.codehaus.org/manage_email


Reply via email to