tags:

views:

34

answers:

2

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

+1  A: 

To filter web resources, you can use the filtering capabilities of the war plugin.

Brabster
+3  A: 

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

Eugene Kuleshov
Thank you, but I don't want to bind maven that closely to my application.
codedevour