We have a git repository which contains source for a few related Java WARs and JARs. It would be nice if the Java code could somehow:
System.err.println("I was built from git commit " + commitID);
(Obviously real code might be putting this into an HTTP header, logging it on startup, or whatever, that’s not important right now)
We are using Ant to build (at least for production builds, it seems some programmers do their testing from inside Eclipse which I know even less about) binaries.
Is there a canonical way to get the commit id for the current git checkout into our Java at build time? If not, can people using Ant to build suggest how they’d do it and we’ll see if a canonical solution emerges? I’m sure I can invent something myself entirely from whole cloth, but this seems like a re-usable building block, so I’d rather not.
I don’t know if there are any Ant task for git (I googled a bit without success), anyway Ant can update a properties file with Piotr’s option (
git rev-parse HEAD) and then in runtime use that properties to get the revision number. This is cleaner and IDE friendly than having Ant generating a .java file.