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