On 12/04/2011, at 11:33 AM, Eric Berry wrote:
> Hello,
> I'm about 2 minutes away from giving up on using Gradle for my java
> application.
>
> I have a multi-module Java project that looks like:
> MyProject/
> app/
> common/
>
> The App project depends on the common project for compile and for runtime.
> The Common project requires commons-lang.
>
> Using commons lang classes in my App project is fine during compilation time,
> and all my unit tests pass. However I cannot for the life of me get the
> dependencies of the common project into the app project for deployment.
>
> I cannot see any easy way to collect all the dependencies of App into a
> single jar file to ship.
> I was pointed to this in the IRC chat room:
> http://docs.codehaus.org/display/GRADLE/Cookbook#Cookbook-Creatingafatjar
>
> But even changing it to configurations.runtime does absolutely nothing.
Assuming that your app project is using the java plugin, you can do something
like this:
jar {
dependOn configurations.runtime
from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it)
} }
}
At some point, we will add a nicer way of merging stuff into the jar. And
perhaps we will add a variation of the application plugin which takes care of
configuring things to create an executable self-contained jar.
>
> The best that I can come up with is something like:
> [code]
> assemble << {
> copy {
> into "${buildDir}/classes/main"
> from configurations.compile.allDependencies.collect { dep ->
> dep.dependencyProject.configurations.compile.collect {
> it.isDirectory() ? it : zipTree(it)
> }
> }
> }
> }
> [/code]
>
> But this seems horrible to me.
>
> Please tell me that there is an easy way to do this. Any help here would be
> greatly appreciated.
>
> Thanks.
> Eric
>
> --
> Learn from the past. Live in the present. Plan for the future.
> Blog: http://eric-berry.blogspot.com
> jEdit <http://www.jedit.org> - Programmer's Text Editor
> Bazaar <http://bazaar.canonical.com> - Version Control for Humans
--
Adam Murdoch
Gradle Co-founder
http://www.gradle.org
VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting
http://www.gradleware.com