《Maven实战》第14章 灵活的构建
- 面对不同环境的差异能够灵活的构建项目,
- 操作系统的差异
- 开发环境、测试环境、产品环境的差异(最常用)
- 不同客户的差异
- Maven中灵活的构建:属性、资源过滤、profile
- 14.1Maven属性
- 6类Maven属性
- 内置属性:${basedir}表示项目根目录,及包含pom.xml文件的目录;${version}表示项目的版本
- POM属性:可用于引用pom文件中对应元素的值。
- 重要的pom属性
- 重要的pom属性
- 自定义属性:pom中<properties>下自定义的属性
- Settings属性:可用于引用settings.xml文件中元素的值,以settings.开头。
- 示例:${settings.localRepository}可引用本地仓库的地址
- Java系统属性:可用于引用Java系统属性。可使用mvn help:system查看Java系统属性。
- 环境变量属性:可用于引用环境变量,以env.开头。可使用mvn help:system查看所有环境变量。
- 示例:${env.JAVA_HOME}可引用JAVA_HOME环境变量。
- 6类Maven属性
- 14.2 资源过滤
- 将不同的环境下的配置抽取出来,如数据库配置,依照不同的环境使用不同的配置
- 一般资源文件:
- src/main/resources/目录下,打包后位于WAR包的WEB-INF/classes,即应用程序的classpath中
- web资源文件:
- src/main/webapp目录下,打包后位于WAR包的根目录,及打包后不在应用程序的classpath中
- 一般资源文件和web资源文件默认都不会被过滤,两者的过滤不会相互影响,即:开启一般资源文件过滤不会影响到web资源过滤
- 14.3 profile
-
配置profile
根据不同环境配置profile,并默认激活online<profiles><profile><id>online</id><activation><activeByDefault>true</activeByDefault></activation><properties><resource.path>src/main/profile/online</resource.path></properties></profile><profile><id>offline</id><properties><resource.path>src/main/profile/offline</resource.path></properties></profile></profiles> -
资源过滤
<finalName>leaf</finalName><filters><!-- 定义了变量配置文件的地址 --><filter>${resource.path}/profile.properties</filter></filters><resources><resource><directory>src/main/resources</directory><!-- 为true,会将相关文件中${property}的地方,用profile.properties中的变量进行替换 --><filtering>true</filtering><includes><include>**/*.xml</include><include>**/*.properties</include></includes></resource><resource><directory>${resource.path}</directory></resource></resources></build> - 使用-P参数激活:mvn clean package -Poffline
-
src/main/profile/offline/profile.properties
db.url=infleaf_inf_leaf_devdb.username=inf_leaf#app.key=com.sankuai.inf.leaf.serviceapp.key=com.sankuai.inf.leaf.servicezk.hosts=10.20.63.112:2181,10.20.62.112:2181,10.20.41.42:2181 -
springContext.xml
//other configurations<!-- 本机appkey --><beanid="appKey"class="java.lang.String"><constructor-argvalue="${app.key}"/></bean>//other configurations


浙公网安备 33010602011771号