maven中profile的使用

 更新时间:2023年04月28日 11:26:23   作者:天道有情战天下  
本文主要介绍了maven中profile的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一个项目可能会有不同的环境,例如dev/stating/prod等,不同的环境的配置文件是不同的,如何根据环境快速的切换到对应的配置文件很重要。

在maven和 spring中都有一个profile的概念,下面分别说

一. 在maven中的pom文件中的profile的作用是根据不同的环境将对应的环境变量设置到项目中,如下例子

步骤一:在pom文件中写profile

<profiles>
        <profile>
            <!-- 开发环境 -->
            <id>local</id>
            <properties>
                <env>local</env>
                <profileName>local</profileName>
                <group>LOCAL_GROUP</group>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <!-- 联调开发环境 -->
            <id>dev</id>
            <properties>
                <env>dev</env>
                <profileName>dev</profileName>
                <group>DEV_GROUP</group>
            </properties>
        </profile>
        <profile>
            <!-- 测试环境 -->
            <id>test</id>
            <properties>
                <env>test</env>
                <profileName>test</profileName>
                <group>TEST_GROUP</group>
            </properties>
        </profile>
        <profile>
            <!-- 预发环境  -->
            <id>pre</id>
            <properties>
                <env>pre</env>
                <profileName>pre</profileName>
                <group>PRE_GROUP</group>
            </properties>
        </profile>
        <profile>
            <!-- 生产环境  -->
            <id>prod</id>
            <properties>
                <env>prod</env>
                <profileName>prod</profileName>
                <group>PROD_GROUP</group>
            </properties>
        </profile>
    </profiles>

步骤二:设置 resources的位置和filtering为true

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

filtering属性为true时,主要用来替换项目中资源文件(.xml、.properties)当中由 ${...} 标记的变量

步骤三:激活profile

以下两种方式可以激活:

a. mvn package时使用-P参数来指定profile,例如mvn package -P dev,这样就会把dev 这个profile中的变量设置到项目对应的变量里面,通常是通过${}和@@来注入属性

b.在对应的profile标签里面写入如下标签,代表默认激活的profile  <activeByDefault>true</activeByDefault> 

二. spring中的profile

Spring中有个注解叫做@Profile("dev"),这个注解只有在对应的profile激活才能使用,这个profile和上面的maven中的没关系,可以通过如下方式激活

一、启动Java应用时,通过-D传入系统参数

-Dspring.profiles.active=dev  

二、如果是web环境,可以通过上下文初始化参数设置

<context-param>  
    <param-name>spring.profiles.active</param-name>  
    <param-value>dev</param-value>  
</context-param>  

三 、通过自定义添加PropertySource

Map<String, Object> map = new HashMap<String, Object>();  
map.put("spring.profiles.active", "dev");  
MapPropertySource propertySource = new MapPropertySource("map", map);  
env.getPropertySources().addFirst(propertySource);  

四、直接设置Profile

env.setActiveProfiles("dev", "test"); 

五、通过操作系统的环境变量来激活

在Spring Boot项目中,如果事先在OS环境变量中定义了“SPRING_PROFILES_ACTIVE”,则会采用此处定义的配置文件

以上方式都可以设置多个profile,多个之间通过如逗号/分号等分隔。 

到此这篇关于maven中profile的使用的文章就介绍到这了,更多相关maven profile内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java数据结构篇之实现二叉搜索树的核心方法

    Java数据结构篇之实现二叉搜索树的核心方法

    二叉搜索树是一种常用的数据结构,它是一棵二叉树,且每个节点的值都大于其左子树中任何节点的值,而小于其右子树中任何节点的值,这篇文章主要给大家介绍了关于Java数据结构篇之实现二叉搜索树的核心方法,需要的朋友可以参考下
    2023-12-12
  • JavaWeb中的简单分页完整代码(推荐)

    JavaWeb中的简单分页完整代码(推荐)

    这次主要是讲解一下通过登录后对得到的数据进行分页,首先我们新建一个登录页面login.jsp,因为我们主要学习的分页,所以登录验证的部分没有提到。关于javaweb中的分页代码大家通过本文学习吧
    2016-11-11
  • Java之mybatis使用limit实现分页案例讲解

    Java之mybatis使用limit实现分页案例讲解

    这篇文章主要介绍了Java之mybatis使用limit实现分页案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Spring Security 基于URL的权限判断源码解析

    Spring Security 基于URL的权限判断源码解析

    这篇文章主要介绍了Spring Security 基于URL的权限判断问题,我们想要实现自己的基于请求Url的授权只需自定义一个 AccessDecisionManager即可,接下来跟随小编一起看看实现代码吧
    2021-12-12
  • 精致小巧的java相册制作方法

    精致小巧的java相册制作方法

    这篇文章主要为大家详细介绍了精致小巧的java相册制作方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Springboot 如何指定获取出 yml文件里面的配置值

    Springboot 如何指定获取出 yml文件里面的配置值

    这篇文章主要介绍了Springboot 如何指定获取出 yml文件里面的配置值操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 基于JVM 调优的技巧总结分析

    基于JVM 调优的技巧总结分析

    本篇文章是对JVM 调优的技巧进行了总结和分析。需要的朋友参考下
    2013-05-05
  • JPA中@CreatedDate和@LastModifiedDate的使用方式

    JPA中@CreatedDate和@LastModifiedDate的使用方式

    这篇文章主要介绍了JPA中@CreatedDate和@LastModifiedDate的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • java查找图中两点之间所有路径

    java查找图中两点之间所有路径

    这篇文章主要为大家详细介绍了java查找图中两点之间所有路径,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • Java-String类最全汇总(下篇)

    Java-String类最全汇总(下篇)

    这篇文章主要介绍了Java-String类最全汇总(下篇),本文章内容详细,本模块分为了两部分,本次为下篇,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2023-01-01

最新评论