In most situation, I will just run mvn clean install tomcat7:run to bring up my application instance. But somehow, in some situation, I would like to have some special configuration on the WAR packaging to be different from the regular build. For example, to exclude some particular JAR out from the build during packaging stage, if I'm using the regular configuration as shown in the code snippet above, I will hit error when I bring up my application instance due to some libraries were gone missing during packaging stage.${project.name} org.apache.tomcat.maven tomcat7-maven-plugin ... ...org.apache.maven.plugins maven-compiler-plugin ... ...org.apache.maven.plugins maven-war-plugin ... ...
In order to play well on both mvn clean install tomcat7:run and mvn clean package, my colleague suggest me to use profiles for this situation. As shown in the following code snippet, another piece of maven-war-plugins configuration is created inside the <profile>:
With this new configuration, the regular build process will continue to work as expected while I have another separate piece to build a custom made build process for packaging. But separated piece need to be done with following command:CUSTOM org.apache.maven.plugins maven-war-plugin 2.2 %regex[WEB-INF/lib/(?!mycustomlibrary).*.jar] myfinalName
mvn clean package –PCUSTOM
Do take note on the <finalName> usage, it allows me to specify a custom package output file name that is different from the regular ugly Maven style name.
No comments:
Post a Comment