• Maven Profiles 多环境配置(开发、测试、生产)


    profiles标签

    在pom.xml中配置profiles标签

    <profiles>
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            <activation>
            <properties>
                <build.profile>dev</build.profile>
                <packageing.type>jar</packageing.type>
            </properties>
        <profile/>
    
        <profile>
            <id>test</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            <activation>
            <properties>
                <build.profile>test</build.profile>
                <packageing.type>war</packageing.type>
            </properties>
        <profile/>
    
        <profile>
            <id>prod</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            <activation>
            <properties>
                <build.profile>prod</build.profile>
                <packageing.type>jar</packageing.type>
            </properties>
        <profile/>
    </profiles>

    activeByDefault标签

    不显式指定环境时, 会取 activeByDefault true 的环境变量, 需要注意的是: 没指定 activeByDefault true 的其他相同 profile id 的 properties 是不会生效的

    • 当我们没有显式指定环境时, maven 会默认取activeByDefault 为 true 的 profile
    • 当父子 pom 都有相同的 profile id 时, 都需要显式指定 activeByDefault true, 如果不指定, 那么并不会加载没有指定 activeByDefault true 的 properties
    • 结论: 对于父子 pom 相同 id 的 profile, 每个 profile 节点都要指定 activeByDefault true

    build标签

    <build>
        <finalName>bdcs</finalName>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
            <resource>
                <directory>src/main/profiles/${build.profile}</directory>
            </resource>
        </resources>
    </build>

    使用filter

    profiles标签

    <profiles>
        <!-- 开发环境 -->
        <profile>
            <id>dev</id>
            <properties>
                <env>dev</env>
            </properties>
        </profile>
        <!-- 生产环境 -->
        <profile>
            <id>publish</id>
            <properties>
                <env>publish</env>
            </properties>
        </profile>
        <!-- 本地环境 -->
        <profile>
            <id>local</id>
            <properties>
                <env>local</env>
            </properties>
            <!--默认启用-->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
    </profiles>

    build标签

     <build>
        <!-- 指定使用filter -->
        <filters>
            <filter>src/main/resources/profiles/${env}/env.properties</filter>
        </filters>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/**</include>
                </includes>
                <excludes>
                    <exclude>profiles/**</exclude>
                </excludes>
                <filtering>true</filtering>
            </resource>
        </resources> 
    </build>

    切换配置环境

    如果使用idea,直接打开右侧的maven在Profiels下勾选切换即可

    如果使用命令行则通过添加后缀 -P

    clean -U package -P dev -DskipTests=true -f pom.xml
    论读书
    睁开眼,书在面前
    闭上眼,书在心里
  • 相关阅读:
    CNN的学习记录
    softmax和softmax loss的学习记录
    Vue2.0 生命周期
    Vue methods 方法
    Vue2.0 全局操作 Vue.set
    Vue2.0 自定义指令 vuedirective
    Vue2.0 构造器的延伸 Vue.extend
    vue computed
    vuecli 脚手架分析
    h5表单介绍与案例
  • 原文地址:https://www.cnblogs.com/YC-L/p/14865462.html
Copyright © 2020-2023  润新知