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 <[EMAIL PROTECTED]> wrote:
> On 29 Sep 2008, at 13:22, Mark Hobson wrote:
>
> 2008/9/29 Dominic Mitchell <[EMAIL PROTECTED]>:
>>
>>> 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:
>>
>> http://maven.apache.org/shared/maven-runtime/
>>
>>
> 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
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
--
-- Lee Meador
Sent from gmail. My real email address is lee AT leemeador.com