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