maven中静态资源和字节码文件的过滤
来源:互联网 发布:你的名字同款结绳淘宝 编辑:程序博客网 时间:2024/06/06 14:44
本文的方法是针对Maven管理的Java Web工程
静态资源的过滤
在maven中,静态资源的过滤使用基本上大家都知道,只需要在<build></build>
中使用resources
标签即可,示例如下:
<build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> </resources></build>
在静态资源的过滤中,基本的元素有三种:
directory
:指定资源所在的目录,这个目录的路径是相对于pom.xml文件;includes
:指定要包含哪些文件,其中包括inlcude子节点来指定匹配的模式;excludes
:指定要排除哪些文件,其中包括exclude子节点来指定匹配的模式;filtering
:指定哪些文件需要过滤,这个过滤的目的是为了替换其中的占位符${}
,其中的占位符属性在pom.xml文件中的<properties></properties>
中指定;
在其中可能遇到的问题如下:
- 当includes和excludes冲突的时候,优先采取excludes中的设定,这篇文章中详细的说明了,这篇文章从源码角度进行了分析;
字节码文件的过滤
相对于静态资源的过滤,针对字节码文件的过滤则比较生僻,尤其是在配置文件基本上都是xml
或者properties
的时候,如果你的工程的配置是Java Config风格的,那么就会遇到在不同的环境下加载不同的配置类的问题。不同于静态的配置文件直接使用<resources>
标签(其实背后还是通过resource插件完成的),字节码的过滤需要直接使用maven-war-plugin
,实例如下:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.0.0</version> <configuration> <packagingExcludes>WEB-INF/classes/test/dao/, WEB-INF/classes/test/service/, WEB-INF/classes/config/TestConfig.class, WEB-INF/lib/log4j-*.jar </packagingExcludes> </configuration></plugin>
从上面可以看到,该插件是通过packagingExcludes
元素完成过滤的,这个元素的作用是在工程package之前, 通过一些模式来排除掉一些文件或者文件夹,如果有多个可以通过逗号“,”来分割,上述使用的例子:
- 排除特定配置类:
WEB-INF/classes/config/TestConfig.class
- 排除特定文件夹:
WEB-INF/classes/test/service/
- 排除引用的jar包:
WEB-INF/lib/log4j-*.jar
上述使用的路径是相对于war包的根路径的。
另外在packagingExcludes
中还可以使用Java的正则表达式,通过%regex[...]
包裹即可,具体可以看官方文档 .
0 0
- maven中静态资源和字节码文件的过滤
- maven的资源过滤
- maven 插件和资源过滤
- 利用maven中resources插件的copy-resources目标进行资源copy和过滤
- 利用maven中resources插件的copy-resources目标进行资源copy和过滤
- maven:资源过滤的介绍
- maven:资源过滤的介绍
- Maven项目中获取classpath和资源文件的路径
- Maven项目中获取classpath和资源文件的路径
- Maven项目中获取classpath和资源文件的路径
- spring mvc 过滤静态资源的配置
- springmvc过滤静态资源的配置
- 过滤Android工程中多余的资源文件
- 过滤Android工程中多余的资源文件
- 过滤Android工程中多余的资源文件
- 过滤Android工程中多余的资源文件
- Maven工程中jetty插件运行web应用时静态资源文件修改不能实时生效的问题
- SpringMVC过滤静态资源
- HTML5 Canvas基础练习
- (ECPC 16) (6/11)
- 算法设计与应用基础: 第十周(1)
- [bzoj4033]树上染色
- 最短路基础总结(Floyd Dijkstra SPFA)
- maven中静态资源和字节码文件的过滤
- python itertools模块实现排列组合
- cmd的javac多个类编译方法
- 推荐系统实践之-冷启动问题
- AOP之Spring使用注解方式实现AOP(入门)
- Word2Vec+CNN+tensorflow实现恶意网页链接的检测
- 【剑指offer】合并两个排序的链表
- 实验5
- eclipse下的项目上出现红色叹号解决