This is an easy filter approach to write the project version into a file.
<build>
<resources>
<resource>
<directory>src/main/webapp</directory>
<includes>
<include>**/*.version</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
This is the project structure (left out the unintresting parts)
├───src
│ └───main
│ ├───java
│ │ └─── [...]
│ └───webapp
│ ├───META-INF
│ └───WEB-INF
│ ├───cfg
│ └───portal.version
└─── pom.xml
The content of portal.version
${project.version}
This should be replaced with the artifact version of the pom.xml
, but unfortunately nothing happens. Whats wrong? Thank you in advance
Resource Filtering. You can use Maven to perform variable replacement on project resources. When resource filtering is activated, Maven will scan resources for property references surrounded by ${ and }.
Via the resources area in the pom you can filter files from their way src/main/resources to the target/classes folder. The lifecycle of Maven is not influenced by this. I have added resources successfully in . Jar file.
Maven resources folder is used to store all your project resources files like , xml files, images, text files and etc. The default Maven resources folder is located at “yourproject/src/main/resources“.
When you specify resource element, the result filtered content is copied into a target/classes folder. To filter web app resources you could configure maven-war-plugin.
Though to get the version, in most cases it is better to read a standard Maven property file in your application, e.g. META-INF\maven\<groupId>\<artifactId>\pom.properties
To filter web resources, you can use the filtering capabilities of the war plugin.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With