Maven多模块项目动态打包(SpringMVC数据源动态配置)
2018-01-20 11:21
519 查看
开发工具:Intellij IDEA。
项目框架:SpringMvc
技术:Maven Profile
项目目录:
manager是聚合工程,剩下的manager-*是模块,其中manager-web打包方式是war。
动态发布配置在manager-web中进行,不涉及其他项目或者模块。
其中,数据库信息位于config下,配置入口是jdbc.properties,在applicationContext-dao.xml中进行配置。
finalName是命名war包的名字。
pom.xml内容结束。
XXX对应pom.xml中的profiles.active节点。
例如jdbc-beta.properties的内容为:
jdbc-pro.properties的内容对应生产环境的内容,格式与jdbc-beta.properties类似,换成生产环境的数据源即可。
properties文件夹下的jdbc.properties文件内容为:
properties配置完成。
使用context:property-placeholder读取jdbc.properties文件(相当于将项目config路径下的两个properties的内容动态的注入jdbc.properties)。
数据源动态配置完成。
XXX的内容是pom.xml中的profiles.active节点的内容。
例如测试环境打包,则命令为
mvn clean install -Pbata
检测是否打包成功:war包解压后,查看jdbc.properties内容是否替换为环境对应的config下的properties文件内容。
项目框架:SpringMvc
技术:Maven Profile
项目目录:
manager是聚合工程,剩下的manager-*是模块,其中manager-web打包方式是war。
动态发布配置在manager-web中进行,不涉及其他项目或者模块。
例一:动态配置数据库源。
目录:其中,数据库信息位于config下,配置入口是jdbc.properties,在applicationContext-dao.xml中进行配置。
pom.xml中需要添加三处内容
内容一:在manager-web的pom.xml的根节点下添加profiles标签(和build,dependencies标签平级)
<profiles> <profile> <!-- 发布环境 --> <id>pro</id> <properties> <profiles.active>pro</profiles.active> </properties> </profile> <profile> <!-- 测试环境 --> <id>beta</id> <properties> <profiles.active>beta</profiles.active> </properties> <activation> <!-- 设置默认激活这个配置 --> <activeByDefault>true</activeByDefault> </activation> </profile> </profiles>
内容二:在build节点下,添加filters和resources节点
<finalName>ROOT</finalName> <!-- 定义了变量配置文件的地址 --> <filters> <filter>src/main/resources/config/jdbc-${profiles.active}.properties</filter> </filters> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources>
finalName是命名war包的名字。
内容三:在build的plugins节点下添加plugin节点。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> </plugin>
pom.xml内容结束。
properties文件的文件名和内容。
config下的propertis文件命名规则:jdbc-XXX.propertiesXXX对应pom.xml中的profiles.active节点。
例如jdbc-beta.properties的内容为:
env.datasource.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver env.datasource.jdbcUrl=jdbc:sqlserver://localhost:1433;DatabaseName=master env.datasource.username=sa env.datasource.password=123456 #定义初始连接数 initialSize=0 #定义最大连接数 maxActive=20 #定义最大空闲 maxIdle=20 #定义最小空闲 minIdle=1 #定义最长等待时间 maxWait=60000
jdbc-pro.properties的内容对应生产环境的内容,格式与jdbc-beta.properties类似,换成生产环境的数据源即可。
properties文件夹下的jdbc.properties文件内容为:
datasource.driver=${env.datasource.driver} datasource.jdbcUrl=${env.datasource.jdbcUrl} datasource.username=${env.datasource.username} datasource.password=${env.datasource.password} #定义初始连接数 initialSize=0 #定义最大连接数 maxActive=20 #定义最大空闲 maxIdle=20 #定义最小空闲 minIdle=1 #定义最长等待时间 maxWait=60000
properties配置完成。
applicationContext-dao.xml相关配置:
<context:property-placeholder location="classpath:properties/*.properties" /> <!-- 数据库连接池 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <property name="url" value="${datasource.jdbcUrl}" /> <property name="username" value="${datasource.username}" /> <property name="password" value="${datasource.password}" /> <property name="driverClassName" value="${datasource.driver}" /> <property name="maxActive" value="10" /> <property name="minIdle" value="5" /> </bean>
使用context:property-placeholder读取jdbc.properties文件(相当于将项目config路径下的两个properties的内容动态的注入jdbc.properties)。
数据源动态配置完成。
打包
动态打包命令:mvn clean install -PXXXXXX的内容是pom.xml中的profiles.active节点的内容。
例如测试环境打包,则命令为
mvn clean install -Pbata
检测是否打包成功:war包解压后,查看jdbc.properties内容是否替换为环境对应的config下的properties文件内容。
相关文章推荐
- Spring boot框架项目,使用maven命令将配置文件打包到jar包外,项目运行读取jar外配置文件
- Idea 打包maven项目 以及spring boot 的自动配置
- 使用maven-war-plugin 对Maven项目进行动态打包
- Maven分模块项目将依赖一起打包
- SpringMVC配置双数据源,一个java项目同时连接两个数据库
- SpringMVC框架入门配置 IDEA下搭建Maven项目
- Maven多模块项目引用jar的配置文件
- Maven多模块,Dubbo分布式服务框架,SpringMVC,前后端分离项目,基础搭建,搭建过程出
- Maven最佳实践 划分模块 配置多模块项目 pom modules
- Maven最佳实践 划分模块 配置多模块项目 pom modules
- maven配置多模块项目事例
- maven 配置多模块项目 pom modules
- 搭建Nexus Repository 3.6.0-02和配置apache-maven-3.5.2和本地的local Repository以及项目的pom.xml(IDEA 打包等)
- maven 项目 springmvc spring 使用SLF4J和 LogBack 做为日志 xml里配置即可
- eclipse maven多模块项目打包
- Springmvc配置(maven项目)
- SpringMVC配置双数据源,一个java项目同时连接两个数据库
- Idea 打包maven项目 以及spring boot 的自动配置
- 使用maven-war-plugin 对Maven项目进行动态打包
- SpringMVC框架入门配置 IDEA下搭建Maven项目