Maven filter resources and adding project version
This is an easy filter approach to write the project version into a file.
<build>
<resources>
<resource>
<directory>src/mai开发者_如何学JAVAn/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
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.
This is solved in this post and also there's an additional step, you have to include this under maven-resources-plugin:
<delimiters>
<delimiter>${*}</delimiter>
</delimiters>
At least that worked for me and I had the exact same issue as you.
精彩评论