idea配置多环境启动方式dev、test、prod
应用场景:实际开发过程中,通常包含研发测试正式环境,为了对各环境在实际使用中隔离,maven配置支持对各环境区分启动
使用例子
一、pom添加以下内容
在pom文件<project>标签下添加如下内容
<!--配置环境的profile--> <profiles> <profile> <id>dev</id> <properties> <!--使用${environment}获取值--> <environment>dev</environment> </properties> </profile> <profile> <id>test</id> <properties> <environment>test</environment> </properties> </profile> <profile> <id>prod</id> <properties> <environment>prod</environment> </properties> </profile> </profiles> <build> <!--suppress UnresolvedMavenProperty --> <finalName>hhInterface-xxl-${environment}</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <includeSystemScope>true</includeSystemScope> </configuration> </plugin> </plugins> <resources> <!--排除环境配置文件--> <resource> <directory>src/main/resources</directory> <excludes> <exclude>application-*.yml</exclude> <exclude>application.yml</exclude> </excludes> </resource> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <!-- 打包时包含的文件 --> <includes> <!--suppress UnresolvedMavenProperty --> <include>application-${environment}.yml</include> <include>application.yml</include> </includes> </resource> </resources> </build> <pluginRepositories> <pluginRepository> <id>spring-snapshots</id> <url>http://repo.spring.io/libs-snapshot</url> </pluginRepository> </pluginRepositories>
application-dev.yml增加如下配置, application-prod.yml active则为prod
spring: profiles: active: dev
对上面内容解析:首先添加profiles,设置启动或打包时的环境类型,设置后右侧会出现profile下面的内容,
如下图
build下设置项目打包时文件名,设置包含或不包含的配置文件
二、分别以dev和prod启动项目
设置dev启动方式如下图,启动后访问Controller,输出了dev配置文件的内容
设置prod启动方式如下图,启动后访问Controller,输出了prod配置文件的内容
注意:一次只能选一个环境,不然默认是第一次选定的环境
三、以jar启动
配置maven打包,输入如下内容
clean package -D maven.test.skip=true -P dev
打开jar包,查看只有application-dev.yml和application.yml,说明命令生效了
注意:也可以点击右侧package打包,profiles选择对应环境即可
可以看到打的包自带dev后缀
启动项目,命令如下
java -jar hhInterface-xxl-dev.jar --spring.profiles.active=dev
访问controller,打出日志
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
JAVA序列化Serializable及Externalizable区别详解
这篇文章主要介绍了JAVA序列化Serializable及Externalizable区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-07-07
最新评论