Hi All,

I stumbled upon an enigma I hope you guys can help solve.
Say you have a multi-project build with 3 projects (to keep it easy) such as

core
 + build.gradle 
 + server
 +-- build.gradle
 + client
 +-- build.gradle
 + shared
 +-- build.gradle

server|client/build.gradle defines the following only

dependencies {
    compile project(':shared')

}

while shared/build.gradle has

jar.enabled = false


The reason for disabling jar generation for :shared is that this build will 
combine :shared.sourceSets.main.output with :client and :server accordingly.
Now for the problem. If I leave the configuration as is then both :client and 
:server will fail during compilation as long as they refer to classes found in 
:shared. Running with -d shows that the classpath only contains the output path 
for :server (build/classes/main for instance). Enabling jar generation on 
:shared makes the build green as shared.jar is now found in the classpath.

So, here I am expecting the build to take into account the output from 
:shared.sourceSets.main.output and not :shared.jar.outputs.files in order to 
construct the classpath of a dependent project. My question is then, is this a 
corner case not implemented? Am I working on the wrong assumptions?

TIA
Andres

Reply via email to