原创

Maven打包过滤jar包

查看依赖

mvn dependency:tree

windows 下解压war文件

winrar x yadong.war * yadong2

在配置pom文件时可以通过<packagingIncludes><packagingExcludes>参数对最终打包文件实现过滤、包含操作。并且支持正则表达式实现过滤规则,多个过滤条件之间使用逗号","分隔,支持"*"通配符。

maven打包的时候排除某些文件(例如Jar)

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
        </configuration>
      </plugin>
    </plugins>
  </build>
  ...
</project>

该种配置,使用了"*"通配符,在执行mvn package时不会将WEB-INF/lib下的jar包文件打包。有时候如果只是使用通配符并不能迎合开发中的某些需求,这时候可以使用强大的正则表达式。如下

排除多种文件

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <!--
            Exclude JCL and LOG4J since all logging should go through SLF4J.
            Note that we're excluding log4j-<version>.jar but keeping
            log4j-over-slf4j-<version>.jar
          -->
          <packagingExcludes>
            WEB-INF/lib/commons-logging-*.jar,
            %regex[WEB-INF/lib/log4j-(?!over-slf4j).*.jar]
          </packagingExcludes>
        </configuration>
      </plugin>
    </plugins>
  </build>
  ...
</project>

这种情况也是比较常用的。上边这个配置中,实现的需求是排除以commons-logging-开头的所有jar包和log4j-<version>.jar格式的所有jar包(不会排除log4j-over-slf4j-<version>.jar这种格式的jar包)

参考自:http://maven.apache.org/plugins/maven-war-plugin/examples/including-excluding-files-from-war.html


正文到此结束