Removing version number from file name with Maven
I have a project with 5 modules in maven. Right now, when I do a "mvn clean install", it generates an ear containing the two jars, one war and one sar from the other modules.
All the file names contain the version, e.g., projectx-ear-2.0.0.ear, projectx-client-2.0.0.jar, etc.
I need to rename one of the jars and the final ear to omit the version in the file name. It should look like this:
projectx-ear.ear
|
+-- projectx-client.jar
|
+-- projectx-misc-2.0.0.jar
|
+-- projectx-sar-2.0.0.sar
|
\-- projectx-web-2.0.0.web
Right now I'm using the following plugins to build: maven-compiler-plugin and maven-release-plugin
What would be the best way to achieve the results I expect?
You can achieve this by specifying the finalName
property in your pom like this:
<build>
<finalName>${project.artifactId}</finalName>
</build>
In your ear module, you can either use the project.build.finalName
element or you can configure the maven-ear-plugin which supports a finalName
optional parameter. And to configure the final name of a bundled jar, you'll need to define a jarModule
and to set the bundleFileName
property for it.
The final configuration might looks something like that (I'll demonstrate how to set the the final ear name in the plugin configuration here):
<project>
[...]
<dependencies>
<dependency>
<groupId>yourgroupid</groupId>
<artifactId>projectx-client</artifactId>
<version>2.0.0</version><!-- not mandatory if inherited -->
</dependency>
[...]
</dependencies>
[...]
<build>
[...]
<plugins>
[...]
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>2.4</version>
<configuration>
<finalName>projectx-ear</finalName>
<modules>
<jarModule>
<groupId>yourgroupid</groupId>
<artifactId>projectx-client</artifactId>
<bundleFileName>anotherName.jar</bundleFileName>
</jarModule>
</modules>
</configuration>
</plugin>
[...]
</project>