I have a GWT project which has its source managed in SVN, is packaged using Maven and has its builds managed via Hudson. I want to get the SVN revision number of the latest check-in/build to be visible in a comment at the bottom of the application root HTML file. I don’t care where in the development process this happens!
Here are the options I’ve Googled for so far, with no success:
- Can I get Hudson to, after building, write the build/revision number
to one of its build output files (namely the application root HTML
file)? I’ve seen no way to do this. - Can I get Maven to write the SVN revision number to one of its build
output files (namely the application root HTML file)? I’ve seen ways
of Maven writing this to a JAR/WAR manifest file (which can then be
accessed in the Java code), but I’m not sure that this works in GWT
(I’m not particularly knowledgeable about the internals of GWT). - Can I get SubVersion to, as a pre-commit hook, write the version number to a particular file? I know it’s easy to write the version number to the file you’re editing, but not so sure about writing to a totally separate file (so that it’s updated on every commit, regardless of whether it was changed in that commit).
Does anyone have a complete, end-to-end example of how to get any of these working? I keep finding little snippets of code/config which do one part of the job, but not anything that is exactly what I’m looking for.
Thanks!
You can achieve what you’re looking for with a combination of Maven and Hudson. In this example let’s imagine you want the file
version.txtat the root of your web app to contain the revision.version.txt:In your project’s
pom.xmlenable filtering in themaven-war-plugin:Make sure that Hudson is building your project via. Subversion checkout and it will set the
SVN_REVISIONenvironment variable for every build and Maven will fill it in.