Hi Steven,

this issue is fixed in trunk.

I now get the following output for your build (without having done any changes to your build.gradle's):

For spring-beans:
/Users/hans/tmp/spring-framework-2.5.6.SEC01/modules/spring-beans/ java14/build/libs/java14-2.5.6.SEC01.jar
Project for dependencies: spring-core
:modules:spring-core:java14
For spring-core:
/Users/hans/tmp/spring-framework-2.5.6.SEC01/modules/spring-core/ java14/build/libs/java14-2.5.6.SEC01.jar

Just remember to give unique group:name:version ids when you want to publish to a Maven repo.

- Hans

--
Hans Dockter
Gradle Project Manager
http://www.gradle.org

On Oct 20, 2009, at 5:03 PM, Steven Devijver wrote:

Hey Adam,

This output demonstrates the problem I'm experiencing:

Project for dependencies: spring-beans
For spring-beans:
F:\spring-framework-2.5.6.SEC01\modules\spring-beans\java14\build \libs\java14-2.
5.6.SEC01.jar
Project for dependencies: spring-core
For spring-core:
F:\spring-framework-2.5.6.SEC01\modules\spring-beans\java14\build \libs\java14-2.
5.6.SEC01.jar
:modules:spring-beans:java14:clean SKIPPED
:modules:spring-beans:java15:clean SKIPPED
:modules:spring-core:java14:clean SKIPPED
:modules:spring-core:java15:clean SKIPPED
:modules:spring-core:java14:compileJava SKIPPED
:modules:spring-core:java14:processResources SKIPPED
:modules:spring-core:java14:classes SKIPPED
:modules:spring-core:java14:jar SKIPPED
:modules:spring-core:java15:compileJava SKIPPED
:modules:spring-core:java15:processResources SKIPPED
:modules:spring-core:java15:classes SKIPPED
:modules:spring-core:java15:jar SKIPPED
:modules:spring-core:moduleJar SKIPPED
:modules:spring-beans:java14:compileJava SKIPPED
:modules:spring-beans:java14:processResources SKIPPED
:modules:spring-beans:java14:classes SKIPPED
:modules:spring-beans:java14:jar SKIPPED
:modules:spring-beans:java14:assemble SKIPPED
:modules:spring-beans:java14:compileTestJava SKIPPED
:modules:spring-beans:java14:processTestResources SKIPPED
:modules:spring-beans:java14:testClasses SKIPPED
:modules:spring-beans:java14:test SKIPPED
:modules:spring-beans:java14:check SKIPPED
:modules:spring-beans:java14:build SKIPPED
:modules:spring-beans:java15:compileJava SKIPPED
:modules:spring-beans:java15:processResources SKIPPED
:modules:spring-beans:java15:classes SKIPPED
:modules:spring-beans:java15:jar SKIPPED
:modules:spring-beans:java15:assemble SKIPPED
:modules:spring-beans:java15:compileTestJava SKIPPED
:modules:spring-beans:java15:processTestResources SKIPPED
:modules:spring-beans:java15:testClasses SKIPPED
:modules:spring-beans:java15:test SKIPPED
:modules:spring-beans:java15:check SKIPPED
:modules:spring-beans:java15:build SKIPPED
:modules:spring-core:java14:assemble SKIPPED
:modules:spring-core:java14:compileTestJava SKIPPED
:modules:spring-core:java14:processTestResources SKIPPED
:modules:spring-core:java14:testClasses SKIPPED
:modules:spring-core:java14:test SKIPPED
:modules:spring-core:java14:check SKIPPED
:modules:spring-core:java14:build SKIPPED
:modules:spring-core:java15:assemble SKIPPED
:modules:spring-core:java15:compileTestJava SKIPPED
:modules:spring-core:java15:processTestResources SKIPPED
:modules:spring-core:java15:testClasses SKIPPED
:modules:spring-core:java15:test SKIPPED
:modules:spring-core:java15:check SKIPPED
:modules:spring-core:java15:build SKIPPED
:modules:spring-beans:moduleJar SKIPPED
:modules:spring-beans:uploadArchives SKIPPED
:modules:spring-core:uploadArchives SKIPPED
:modules:spring-beans:java14:uploadArchives SKIPPED
:modules:spring-beans:java15:uploadArchives SKIPPED
:modules:spring-core:java14:uploadArchives SKIPPED
:modules:spring-core:java15:uploadArchives SKIPPED

BUILD SUCCESSFUL

Total time: 21.156 secs

As you can see the JAR for the java14 project which spring-core depends on should be modules/spring-core/java14/... but is modules/ spring-beans/java14/...

I've uploaded the project here:

http://drop.io/uck6ryq

Run "gradle clean build upload -m" from the root of the project.

Steven

De : Adam Murdoch <[email protected]>
À : [email protected]
Envoyé le : Lun 19 Octobre 2009, 0 h 20 min 07 s
Objet : Re: [gradle-user] subprojects { } redux



Steven Devijver wrote:

Hey all,

It seems the project delegation situation with the subprojects { } method is worse than I originally thought. Today I've discovered that the dependencies { } method is also affected which means you can't declare proper project dependencies in a multi-project build.


Do you have an example?

Generally, the stuff in dependencies { } is executed immediately, so will not be affected by the delegate problem.

I've been working on porting spring to gradle for more than a week now, mostly struggling with weird behavior that I've now all attributed to the same issue. At this point I have to abandon my work for now until this issue is fixed.

Here is an (ugly) workaround you can put in your root build script somewhere. It will change the behaviour of the task action closures, so that they work correctly when used in a subprojects { } closure. You can delete this chunk of code when the issue is fixed.

subprojects {
    afterEvaluate {project ->
        project.tasks.each {task ->
task.actions.findAll { it instanceof ClosureTaskAction }.each {
                it.closure.delegate = project
                it.closure.resolveStrategy = Closure.DELEGATE_FIRST
            }
        }
    }
}


--
Adam Murdoch
Gradle Developer
http://www.gradle.org



Reply via email to