Just after some direction before I attempt to dive into Gradle properly. I’ve just watched Hans Dockter’s Rock the Gradle tube so I’ve got a rough feel that Gradle may be able help out during the build process although my concern is that my requirements are either such a small subset of Gradle’s capability or so way off it’s main focus that it may not be the right path to follow.
Enough waffle…my build requirements; - The overall project is a set of smaller projects, each of which follow a similar pattern (below); — LDAP schema changes
— Database schema changes, plus some meta data updates to tables — Application updates; the ‘apps’ are essentially java, but are created as xml files that are deployed to a bunch of JVM’s — Properties files that are environment specific (credentials, hostnames etc) - needs value injection at deployment time — External jars, .jsp’s, css’s etc - these can’t be wrapped into a war - they have to be deployed as static files - that’s just the way these extensions work in our app. — For each release I will need to produce one set of LDAP changes, one set of DB changes, one set of application updates - each deploys onto a different set of servers. During deployment the various components will need to be restarted - it would be ‘nice’ to include this in a script, but not essential. — For security reasons we can’t fully automate deployment so the ‘best’ automation possible is to build environment specific tar’s (or similar) that we can drop onto the target and deploy manually - ugly, but that’s the security trade-off for me & fair enough. This means things like Chef can’t help me with deployment so my focus is to attempt to automate the build of the package as that’s all I can affect. — We don’t need unit tests during the build process - we couldn’t unit test most of our java code anyway without the full infrastructure which can’t be contacted from the build side of the network. — Most projects don’t depend on each other, although we do have a handful of components that are in Netbeans and have dependencies on each other. — We use SVN as a repository so what I’d ‘like’ is to be able to run a build that pulls all the latest code from SVN to form the give release package - for organisational reasons we can’t continuous release so it’s discrete qtrly for us.
So, question is for those experienced with Gradle - are my requirements too deployment focussed and I should be barking up another tree or does anyone think Gradle is the right sort tool for this kind of environment??
After typing it feels that my focus is on building a good package that I can use for manual deployment from a scattered set of resources and no/minimal java code to compile and unit test where everything is stored in SVN (perhaps that’s all I needed to say…doh)
Many thanks if you got this far!!