Hello Niclas,
sorry, posted this before on the wrong thread. here again on the correct thread.

using the from(source, Closure) syntax to define your spec should do the trick:

libsImage = copySpec {
    releaseApprovedProjects.collect { proj ->
      if( proj.group == 'org.qi4j.core' )
      {
        from (proj.configurations.runtime){
          into("libs")
        }
      }
      else if( proj.group == 'org.qi4j.library' )
      {
        from(proj.configurations.runtime){
          into("libs/libraries/$proj.name")
        }
      }
      else if( proj.group == 'org.qi4j.extension' )
      {
        from(proj.configurations.runtime){
          into("libs/extensions/$proj.name")
        }
      }
    }
  }

regards,
René
4. März 2012 14:48
Instead of `releaseApprovedProjects.collect`, try `for (proj in
releaseApprovedProjects)`. Does this solve the problem?

--
Peter Niederwieser
Principal Engineer, Gradleware
http://gradleware.com
Creator, Spock Framework
http://spockframework.org
Twitter: @pniederw

--
View this message in context: http://gradle.1045684.n5.nabble.com/Dist-Layout-problems-tp5534867p5535248.html
Sent from the gradle-user mailing list archive at Nabble.com.

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

http://xircles.codehaus.org/manage_email


4. März 2012 07:39
Hi,
I am trying to create a correct qi4j-sdk-bin.zip file, and is having
problem with dependency libraries.

I create a copySpec for the layout I want;

task distLayout( dependsOn: [javadocs, test, jar, subprojects*.build] ) {
dependsOn: ':manual:manuals'

:

libsImage = copySpec {
releaseApprovedProjects.collect { proj ->

if( proj.group == 'org.qi4j.core' )
{
from proj.configurations.runtime
into("libs/core")
}
else if( proj.group == 'org.qi4j.library' )
{
from proj.configurations.runtime
into("libs/libraries/$proj.name")
}
else if( proj.group == 'org.qi4j.extension' )
{
from proj.configurations.runtime
into("libs/extensions/$proj.name")
}
}
}

:

}

then I use that to build the Binary zip layout

binDistImage = copySpec {
into "qi4j-sdk-$version"
with docsImage
with libsImage
with samplesImage
with tutorialsImage
}

And finally a task to create the zip file;

task zipBinaries(type: Zip, dependsOn: distLayout) {
baseName = 'qi4j-sdk'
classifier = 'bin'
with distLayout.binDistImage
}


BUT, what I get in the ZIP file doesn't make sense. All jar files end
up in the same directory;

testing: qi4j-sdk-2.0-alpha-0/libs/libraries/org.qi4j.library.uid/org.qi4j.core.io-2.0-alpha-0.jar
OK
testing: qi4j-sdk-2.0-alpha-0/libs/libraries/org.qi4j.library.uid/slf4j-api-1.6.1.jar
OK
testing: qi4j-sdk-2.0-alpha-0/libs/libraries/org.qi4j.library.uid/joda-time-1.6.2.jar
OK
testing: qi4j-sdk-2.0-alpha-0/libs/libraries/org.qi4j.library.uid/org.qi4j.core.functional-2.0-alpha-0.jar
OK
testing: qi4j-sdk-2.0-alpha-0/libs/libraries/org.qi4j.library.uid/org.qi4j.core.api-2.0-alpha-0.jar
OK
testing: qi4j-sdk-2.0-alpha-0/libs/libraries/org.qi4j.library.uid/org.qi4j.core.spi-2.0-alpha-0.jar
OK
testing: qi4j-sdk-2.0-alpha-0/libs/libraries/org.qi4j.library.uid/slf4j-api-1.6.1.jar
OK
testing: qi4j-sdk-2.0-alpha-0/libs/libraries/org.qi4j.library.uid/org.qi4j.core.functional-2.0-alpha-0.jar
OK
testing: qi4j-sdk-2.0-alpha-0/libs/libraries/org.qi4j.library.uid/org.qi4j.core.io-2.0-alpha-0.jar
OK
testing: qi4j-sdk-2.0-alpha-0/libs/libraries/org.qi4j.library.uid/joda-time-1.6.2.jar
OK
testing: qi4j-sdk-2.0-alpha-0/libs/libraries/org.qi4j.library.uid/slf4j-api-1.6.1.jar
OK
testing: qi4j-sdk-2.0-alpha-0/libs/libraries/org.qi4j.library.uid/org.qi4j.core.functional-2.0-alpha-0.jar
OK
testing: qi4j-sdk-2.0-alpha-0/libs/libraries/org.qi4j.library.uid/slf4j-api-1.6.1.jar
OK

Also note that they are duplicated entries...


Am I doing something fundamentally wrong, or have I come across a bug??


Cheers


Reply via email to