Consider a multi-project build with the following setup:

projA/build.gradle and projB/build.gradle both contain this

task a << { }

Executing "gradle :projA:a" gives

:projA:a

BUILD SUCCESSFUL

So far, so good.  ProjA's a task does not depend on ProjB's a task, which is
what I want.  Now, I need projB to reference a property defined in projA

projA/build.gradle is now

println project(':projB').prop
task a << { }

and projB/build.gradle is now

prop = 'projB set this prop'
task a << { }

Executing "gradle :projA:a" now gives

A problem occurred evaluating project ':projA'.
Cause: Could not find property 'prop' on project ':projB'.

BUILD FAILED

This is because projA is executed before projB.  Ok, to resolve this, I add
a "dependsOn ':projB'" to the top of projA.  Now, executing "gradle
:projA:a" gives

projB set this prop
:projB:a
:projA:a

BUILD SUCCESSFUL

So, I now can access the property I wanted, but a task dependency was
suddenly added from projA:a to projB:a.  That's not what I wanted.  How can
I get access to projB's project properties without all these task
dependencies being added?

-- 
John Murph
Automated Logic Research Team

Reply via email to