美文网首页
maven多环境配置

maven多环境配置

作者: 雨中星辰0 | 来源:发表于2019-05-23 10:52 被阅读0次
    作者 时间
    雨中星辰 20190523

    背景

    项目在开发中,有多种环境,之前每次在不同的环境部署都要修改一次配置文件,觉得十分麻烦,而且修改配置文件,不小心很容易出错,就想到了使用maven和springboot的多环境配置。

    但是经过研究发现,springboot的多环境只能配置springboot的配置文件,但是在我的项目中除了springboot的配置文件还有其他的文件,故使用maven的多环境配置完成本次需求。

    方法

    1. 在resource根据不同的环境建立不同的目录,将该环境的配置文件放入目录中。

    image.png

    2. 配置profile

    <profiles>
            <!--本地开发环境-->
            <profile>
                <id>ys</id>
                <properties>
                    <profiles.active>ys</profiles.active>
                </properties>
                <activation>
                    <activeByDefault>true</activeByDefault>
                </activation>
            </profile>
            <!--冀北环境-->
            <profile>
                <id>jb</id>
                <properties>
                    <profiles.active>jb</profiles.active>
                </properties>
            </profile>
            <!--四川环境-->
            <profile>
                <id>sc</id>
                <properties>
                    <profiles.active>sc</profiles.active>
                </properties>
            </profile>
            <!--天津环境-->
            <profile>
                <id>tj</id>
                <properties>
                    <profiles.active>tj</profiles.active>
                </properties>
            </profile>
        </profiles>
    

    3. 资源配置

    <build>
          <!--为了区分打包的环境,在报名后加入了环境名-->
          <!--打包后的名称为:zeus-admin-2.1-fj.jar-->
            <finalName>${project.artifactId}-${project.version}-${profiles.active}</finalName>
    
            <resources>
                <resource>
                    <directory>src/main/java</directory>
                </resource>
                <resource>
                    <directory>src/main/resources</directory>
                    <!--指定要包含的文件-->
                    <includes>
                        <include>banner.txt</include>
                        <!--包含static的目录下的所有文件-->
                        <!--一个*指:所有子文件,两个*指:"子"文件与"孙"文件-->
                        <include>static/**</include>
                    </includes>
                    <!-- 资源根目录排除各环境的配置,使用单独的资源目录来指定 -->
                    <excludes>
                        <exclude>hn/**</exclude>
                        <exclude>jb/**</exclude>
                        <exclude>local/**</exclude>
                        <exclude>sc/**</exclude>
                        <exclude>tj/**</exclude>
                        <exclude>ys/**</exclude>
                    </excludes>
                </resource>
                <resource>
                    <directory>src/main/resources/${profiles.active}</directory>
                    <!--是否替换资源中的属性-->
                    <filtering>true</filtering>
                </resource>
            </resources>
    </build>
    

    #4.打包

    mvn clean package -DskipTests -P ${profiles.active}
    例:mvn clean package -DskipTests -P ys

    注意:一定要加clean,否则可能会将其他环境的配置文件打包进去,虽然不影响程序的使用,但是不太好。

    相关文章

      网友评论

          本文标题:maven多环境配置

          本文链接:https://www.haomeiwen.com/subject/utfvzqtx.html