通过filter过滤的形式进行打包,只出那些包下的资源需要被过滤,进行值替换
## 1. 配置过滤
```
<build>
<finalName>manage</finalName> //项目打包名称
<plugins> //使用插件
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java-version}</source>
<target>${java-version}</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
<resources> //资源管理
<resource>
<directory>src/main/java</directory>
<filtering>false</filtering> //1.指出对java目录下的资源不进行过滤
<includes>
<include>**/*.xml</include> //1.1 xml文件打包进去,没有值的过滤替换
<include>**/*.class</include> //1.2 java文件打包进去,没有值的过滤替换
</includes>
</resource>
<resource>
<directory>src/main/resources</directory> //2.指出对resources目录下的资源不进行过滤
<filtering>false</filtering>
<includes>
<include>**/*.xml</include> //2.1 xml文件打包进去,没有值的过滤替换
<include>**/*.bpmn</include>//2.2 bpmn文件打包进去,没有值的过滤替换
<include>**/*.pdf</include>//2.3 pdf文件打包进去,没有值的过滤替换
<include>**/*.cab</include>//2.1 cab文件打包进去,没有值的过滤替换
<include>**/*.docx</include>//2.1 docx文件打包进去,没有值的过滤替换
<include>**/*.doc</include>//2.1 doc文件打包进去,没有值的过滤替换
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering> //3 进行过滤
<includes>
<include>**/*.properties</include> //打包进去,但是进行过滤值替换
<include>**/*.conf</include> //打包进去,但是进行过滤,替换
</includes>
</resource>
</resources>
</build>
```
![](https://box.kancloud.cn/6c54bdc09a90d1947e2dcf4b13d62a08_227x68.png)
![](https://box.kancloud.cn/734144c4323b8b31df99374b43bdacc5_272x29.png)
如使用prod打包,则使用metadb_config-prod.properties中的变量替换metadb_config.properties(注意文件名)
![](https://box.kancloud.cn/86f74e75da34d5536caee460ad00cc02_822x530.png)
![](https://box.kancloud.cn/9d43c14a2ef7b1bcced6be5170465214_1251x544.png)
### 1.1 ` <build>`
编译设置,一般有两种方式:
1.全局配置(project build)
针对整个项目的所有情况都有效,即是<project>标签的直接子元素。
2.配置(profile build)
针对不同的profile配置,即是<profile>的直接子元素。
3. 相关配置项
1)defaultGoal
> 执行build任务时,如果没有指定目标,将使用的默认值。
2)directory
> build目标文件的存放目录,默认在${basedir}/target目录
3)finalName
> build目标文件的名称,默认情况为${artifactId}-${version}
4)filter
> 定义*.properties文件,包含一个properties列表,该列表会应用到支持filter的resources中。
也就是说,定义在filter的文件中的name=value键值对,会在build时代替${name}值应用到resources中。
maven的默认filter文件夹为${basedir}/src/main/filters
## 2. 使用过滤,对上边的进行过滤
```
<profiles>
<profile>
<id>dev</id>
<build>
<filters>
<filter>src/main/resources/filters/metadb_config-dev.properties</filter>
<filter>src/main/resources/filters/fdfs_client-dev.conf</filter>
</filters>
</build>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>qa</id>
<build>
<filters>
<filter>src/main/resources/filters/metadb_config-qa.properties</filter>
<filter>src/main/resources/filters/fdfs_client-qa.conf</filter>
</filters>
</build>
</profile>
<profile>
<id>prod</id>
<build>
<filters>
<filter>src/main/resources/filters/metadb_config-prod.properties</filter>
<filter>src/main/resources/filters/fdfs_client-prod.conf</filter>
</filters>
</build>
</profile>
</profiles>
```
mvn clean install -P qa
- 计算机网络
- 基础_01
- tcp/ip
- http转https
- Let's Encrypt免费ssl证书(基于haproxy负载)
- what's the http?
- 网关
- 网络IO
- http
- 工具
- Git
- 初始本地仓库并上传
- git保存密码
- Gitflow
- maven
- 1.生命周期命令
- 聚合与继承
- 插件管理
- assembly
- 资源管理插件
- 依赖范围
- 分环境打包
- dependencyManagement
- 版本分类
- 找不到主类
- 无法加载主类
- 私服
- svn
- gradle
- 手动引入第三方jar包
- 打包exe文件
- Windows
- java
- 设计模式
- 七大原则
- 1.开闭原则
- 2. 里式替换原则
- 3. 依赖倒置原则
- 4. 单一职责原则
- 单例模式
- 工厂模式
- 简单工厂
- 工厂方法模式
- 抽象工厂模式
- 观察者模式
- 适配器模式
- 建造者模式
- 代理模式
- 适配器模式
- 命令模式
- json
- jackson
- poi
- excel
- easy-poi
- 规则
- 模板
- 合并单元格
- word
- 读取
- java基础
- 类路径与jar
- 访问控制权限
- 类加载
- 注解
- 异常处理
- String不可变
- 跨域
- transient关键字
- 二进制编码
- 泛型1
- 与或非
- final详解
- Java -jar
- 正则
- 读取jar
- map
- map计算
- hashcode计算原理
- 枚举
- 序列化
- URLClassLoader
- 环境变量和系统变量
- java高级
- java8
- 1.Lambda表达式和函数式接口
- 2.接口的默认方法和静态方法
- 3.方法引用
- 4.重复注解
- 5.类型推断
- 6.拓宽注解的应用场景
- java7-自动关闭资源机制
- 泛型
- stream
- 时区的正确理解
- StringJoiner字符串拼接
- 注解
- @RequestParam和@RequestBody的区别
- 多线程
- 概念
- 线程实现方法
- 守护线程
- 线程阻塞
- 笔试题
- 类加载
- FutureTask和Future
- 线程池
- 同步与异步
- 高效简洁的代码
- IO
- ThreadLocal
- IO
- NIO
- 图片操作
- KeyTool生成证书
- 压缩图片
- restful
- 分布式session
- app保持session
- ClassLoader.getResources 能搜索到的资源路径
- java开发规范
- jvm
- 高并发
- netty
- 多线程与多路复用
- 异步与事件驱动
- 五种IO模型
- copy on write
- code style
- 布隆过滤器
- 笔试
- 数据库
- mybatis
- mybatis与springboot整合配置
- pagehelper
- 分页数据重复问题
- Java与数据库之间映射
- 拦截器
- 拦截器应用
- jvm
- 堆内存测试
- 线程栈
- 直接内存
- 内存结构
- 内存模型
- 垃圾回收
- 调优
- 符号引用
- 运行参数
- 方法区
- 分带回收理论
- 快捷开发
- idea插件
- 注释模板
- git
- pull冲突
- push冲突
- Excel处理
- 图片处理
- 合并单元格
- easypoi
- 模板处理
- 响应式编程
- reactor
- reactor基础
- jingyan
- 规范
- 数据库