Maven: JAR/WAR Final Name, Excluding JAR Files from WAR
By admin on Feb 29, 2008 in Java, Programming
Maven is a good build tool but sometimes it is quite confusing to use. I have encountered the followings
JAR/WAR file Final Name
By default the final JAR or WAR file generated is <project-name>-<version-number>.jar/war. At first to change it I used the following.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<configuration>
<finalName>myname</finalName>
<configuration>
</plugin>
It works for JAR file but not for WAR file. I tried the following.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1-alpha-1</version>
<configuration>
<finalName>myName</finalName>
</configuration>
</plugin>
This does NOT work. At the end, the way which works for both JAR and WAR is
<build> <finalName>myName</finalName> ....... ..... </build>
To Exclude Unnecessary JAR files from WAR
I tried to generate the WAR file for my web application, and ended up with a lot of unwanted JAR files packaged together in the WAR file. To resolve this, first I tried to change the dependency to provided.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.3</version>
<scope>provided</scope>
</dependency>
This works but in the first place I do not need servlet-api-2.3.jar. It is packaged in the WAR because of transitive dependency. Finally I do it this way.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1-alpha-1</version>
<configuration>
<warSourceExcludes>WEB-INF/lib/servlet-api-2.3.jar&
lt;/warSourceExcludes>
</configuration>
</plugin>

berkay | Jul 8, 2009 | Reply
give it a try..
your_war_name
org.apache.maven.plugins
maven-compiler-plugin
2.0.2
1.6
1.6
maven-war-plugin
2.0.2
true