I have three source sets: main, javacc, ast. They need to be compiled in that order, and each needs to have access to the classes generated by the previous ones. Specifying task dependencies doesn't get the classes added to the classpath. If I try to add the files to configurations.compile (like in "Example 28.7. Generated file dependencies" of the 0.8 user manual), I get circular task dependencies.

So how should I go about specifying these dependencies? I'd really rather not break things out into multiple projects, because they're simply not that distinct (they share the same dependencies, will end up packaged into the same JAR, etc., etc.). I just need a particular compilation order.

(BTW, the reason I need the particular compilation order is because the AST is written in Scala and the javacc is written in Java. The javacc depends on the AST, which means compileJava depends on compileScala, which is a circular dependency. I can't seem to remove compileJava from compileScala's dependency list: compileScala.dependsOn().remove(compileJava) doesn't seem to do anything. If I could break the bad assumption that compileScala depends on compileJava, I wouldn't need the distinct source sets and could move on with my life.)

~~ Robert.

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

   http://xircles.codehaus.org/manage_email


Reply via email to