We have multiple java projects, each producing a jar build by gradle. Now we would like to assemble them all together to form our shippable product (which means opy all jars and their dependencies to a certain place) How would we go about and define an assemble task for our root project (the Gradle way) ?
Something like this should work:
task assembleDist(type: Copy) {
into('dist')
subprojects.each { subProject ->
from subProject.jar
from subProject.configurations.runtime
}
}
Another way to approach this would be to create a configuration (say “fulldist”) with all of the subprojects you want to include as dependencies, then just use “from configurations.fulldist”.
Thanks a lot. And how would you do it, if you need only specific projects. Can you access them somehow by name?
Lots of different ways you could approach that, but subprojects is a collection, so you could do something like this:
subprojects.findAll { it.name =~ /regex/ }.each { subProject ->
...
}