i have a deployed grails apps on tomcat6 in my client server machine, but the application is still need many fix, so every bug founded or missing feature on client machine, i creating a patch and delivering to client via ftp on .tar.gz file that will replace on deployed folder.
i can’t send a fully .war files because the apps is big (~80M), so sending a changes .class files is the only option i have. but the process to creating a patch is too time consuming, especially on rebuild the project, cleaning up the target folder and start to compile all files on project. after that i search the different .class files using on comparison folder apps on new target/classes folder compared to old target/classes folder, and send it to client.
the creating war process is really took many time just to fix a minor thing, is there a way more simple to get a different .class on compiled code? because i need to create patch on 2-3days each for fixing a little stuff that also routinely client reported.
thanks,
We build the WAR file, then unzip it locally and synchronize the locally exploded WAR (using RSync) with the exploded WAR on the server (using Cygwin on the developer Windows machines). The RSync protocol is very efficient so the deploy over the internet is very fast, but the WAR file generation still takes a lot of time 🙁
We have scripts on both the developer machines as well as on the server so our deploy mechanism is pretty painless, if you discount the WAR build time. Also, we don’t rsync directly into the production directory, we wait until rsync is done and then run a script on the server which also backs up the previous production version in case something goes horribly wrong.