本文以单体架构为例,技术体系采用单纯Spring框架(未结合SpringBoot下回分解),在开发环境中支持多环境打包配置。常见环境有:开发、测试、与测试、生产等。本文采用Maven打包插件maven-resources-plugin为例详细说明如何配置及打包。
Maven等相关知识不是本文重点,如需要深入了解,欢迎自行谷歌或度娘。
一、常见配置目录分类如下:
通过以目录的形式约定配置文件的存放地址,如dev下存放开发环境相关数据库地址,用户名密码,redis的相关地址,Mq等中间件的地址等。
二、在pom.xml中定义相关环境标识
<profiles><profile><id>dev</id><activation><activeByDefault>true</activeByDefault></activation><properties><package.environment>dev</package.environment></properties></profile><profile><id>test</id><properties><package.environment>test</package.environment></properties></profile><profile><id>prod</id><properties><package.environment>prod</package.environment></properties></profile></profiles>
说明,activeByDefault表示默认使用开发环境。
三、插件配置
<build><finalName>${project.artifactId}</finalName><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include><include>**/*.xls</include><include>**/*.xlsx</include><include>**/*.bpmn</include></includes></resource><resource><directory>src/main/resources</directory><filtering>true</filtering><includes><include>**/*.properties</include><include>**/*.xml</include><include>**/*.xsd</include></includes><excludes><exclude>dev/*</exclude><exclude>test/*</exclude><exclude>prod/*</exclude></excludes></resource></resources><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>${java.version}</source><target>${java.version}</target><encoding>${project.build.sourceEncoding}</encoding></configuration></plugin><!-- 不同环境的配置文件选择 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>2.6</version><executions><execution><id>copy-resources</id><phase>compile</phase><goals><goal>copy-resources</goal></goals><configuration><!-- 覆盖原有文件 --><overwrite>true</overwrite><outputDirectory>${project.build.outputDirectory}</outputDirectory><!-- 也可以用下面这样的方式(指定相对url的方式指定outputDirectory) <outputDirectory>target/classes</outputDirectory> --><!-- 待处理的资源定义 --><resources><resource><!-- 指定resources插件处理哪个目录下的资源文件 --><directory>src/main/resources/${package.environment}</directory><filtering>false</filtering></resource></resources></configuration></execution></executions></plugin></plugins></build>
以上是Maven多环境打包配置详情。原理是采用maven的打包命令,通过打包插件去自动加载指定环境的配置文件,即可实现项目的多环境支持。结合Jenkins可进行多环境推送发布。
四、打包
mvn clean package -Pdev mvn clean package -Ptest
通过执行maven的package打包命令,-P指定环境,即可实现预期目的。
以上就是在传统java开发模式中,如何使用maven进行多环境支持。希望还在查找相关资料的朋友有所收获。避免人工打包的原始方式,欢迎各位朋友交流讨论项目工程研发最佳实践,共同提高效率。