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