前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >maven的profile配置多种部署环境(如开发、测试、生产等)

maven的profile配置多种部署环境(如开发、测试、生产等)

作者头像
青山师
发布2023-05-04 20:42:37
7760
发布2023-05-04 20:42:37
举报

用Maven的小伙伴都知道,Maven的宗旨是约定优于配置(Convention Over Configuration)。

在宗旨的前提下Maven也提供了个性化定制的Profile,让我们看看用法哈!

首先让我们一起看看Maven中的属性,这个用的挺多的:

注:以下属性请在pom文件中使用,项目中使用默认是不支持的需要自己配置。

代码语言:javascript
复制
    内置属性: ${basedir}项目根目录

                      ${version} 项目版本号

    Pom属性: ${project.artifactId}

                       ${project.build.sourceDirectory}

                       ${project.build.testSourceDirectory}

                       ${project.build.directory}

                       ${project.outputDirectory}

                       ${project.testOutputDirectory}

                       ${project.groupId}

                       ${project.version}

                       ${project.build.finalName}

    自定义属性:Settings: ${settings.localRepository} ,引用settings.xml文件中的XML元素的值

    Java系统属性: ${user.home}

    环境变量属性: ${env.JAVA_HOME}

现在我们开始认识Profile,以下是一个简单的Profile结构体:

代码语言:javascript
复制
<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <db.driver>com.mysql.jdbc.Driver</db.dirver>
        </properties>
    </profile>
</profiles>

定义一个id为dev、属性db.driver为com.mysql.jdbc.Driver的Profile。 仅仅定义就行了吗?答案是否定的。我们需要激活Profile才能生效,我们可以通过mvn clean install -P dev激活!

(注:dev为激活ID,如果你想激活多个可以mvn clean install -P dev1,dev2使用,如果不想激活某一个用-P!dev1)

以上是一种激活方式,下面我们继续介绍其他激活方式

activeByDefault默认激活:

代码语言:javascript
复制
<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <db.driver>com.mysql.jdbc.Driver</db.dirver>
        </properties>
        <activation>  
            <activeByDefault>true</activeByDefault>  
        </activation>  
    </profile>
</profiles>

settings.xml默认激活:

代码语言:javascript
复制
<settings>  
...  
    <activeProfiles>  
        <activeProfile>dev1</activeProfile>  
    </activeProfiles>  
...  
</settings> 

系统属性激活:

代码语言:javascript
复制
<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <db.driver>com.mysql.jdbc.Driver</db.dirver>
        </properties>
        <activation>  
            <property>  
                <name>test</name>  
                <value>driver</value>
            </property>
        </activation>  
    </profile>
</profiles>

注:上面表示test=driver时才激活, mvn clean install -Dtest=driver 系统环境激活:

代码语言:javascript
复制
<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <db.driver>com.mysql.jdbc.Driver</db.dirver>
        </properties>
        <activation>  
            <jdk>[1.5,1.8)</jdk>
            <file>   
                <missing>oracle.properties</missing>   
                <exists>jdbc.properties</exists>   
            </file>
        </activation>
    </profile>
</profiles>

注:上面表示jdk为1.5、1.6和1.7的时候激活 存在jdbc.properties文件情况,不存在oracle.properties文件情况激活

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-12-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档