| From | Sent On | Attachments |
|---|---|---|
| Dominic Mitchell | Sep 29, 2008 5:03 am | |
| Brett Porter | Sep 29, 2008 5:08 am | |
| Mark Hobson | Sep 29, 2008 5:22 am | |
| Dominic Mitchell | Sep 29, 2008 5:31 am | |
| Dominic Mitchell | Sep 29, 2008 5:36 am | |
| Lee Meador | Sep 29, 2008 5:16 pm |
| Subject: | Re: Accessing project version number from Java | |
|---|---|---|
| From: | Lee Meador (le...@leemeador.com) | |
| Date: | Sep 29, 2008 5:16:28 pm | |
| List: | org.apache.maven.users | |
I use this little snippet inside ant build.xml target named versionProperties to generate a Java file that gets compiled and provides a constant (as ProgramVersion.VERSION):
<property name="generated.src.dir" location="${basedir}/target/generated-sources/java" /> <echo file="${generated.src.dir}/com/company/version/ProgramVersion.java"> package com.company.version; /** Generated in ANT */ public class ProgramVersion { public static final String VERSION = "${program.version}"; } </echo>
Then this goes inside the <build><plugins> section of the pom:
<plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <property name="program.version" value="${pom.version}"></property> <ant antfile="build.xml" dir="." target="versionProperties" inheritRefs="true" /> </tasks> <sourceRoot>
${project.build.directory}/generated-sources/java </sourceRoot> </configuration> </execution> </executions> </plugin>
No need to use the pom.version value to set it but you do have to not put a double-quote or a newline in there.
It works.
-- Lee
On Mon, Sep 29, 2008 at 7:37 AM, Dominic Mitchell <do...@semantico.com> wrote:
On 29 Sep 2008, at 13:22, Mark Hobson wrote:
2008/9/29 Dominic Mitchell <do...@semantico.com>:
What's the easiest way to get at the version number in the POM from Java?
I've been using getResourceAsStream('META-INF/maven/groupId/artifactId/pom.properties'); But this doesn't work while I'm developing in Eclipse (only when using the built jar file).
You can use maven-runtime to dynamically obtain this information, but it still has the limitation of requiring the META-INF files created at package-time:
Aha! Thanks for pointing this out. That's much more useful than rolling my own implementation of such a thing.
I'd quite like to see the generation of these metadata files occur at
the generate-resources phase of the lifecycle which would allow it work within the IDE too.
-Dom
-- -- Lee Meador Sent from gmail. My real email address is lee AT leemeador.com





