This is my favorite way of reading Maven project version from runtime.
First on your pom, declare that all files on src/main/resources will be filtered — meaning any placeholder (eg: ${project.version}) will be substituted by Maven.
... src/main/resources true
Then create a properties file (eg: myapp.properties) with key-value pair containing the Maven project version
myapp.version=${project.version}
Ensure the file above is configured on your Spring container either using xml:
Or Java annotation:
("classpath:/myapp.properties") public class TheConfig { ... }
The key-value entry can then be injected on any Java beans living in the container:
public class MyClass { ("${myapp.version}") private String version; ... }
Or even spring xml config:
Beware that if you have more than 1 Spring container (eg: root and servlet), you need to declare