在开发过程中,配置文件是必不可少的,比如:spring-mvc.xml,jdbc.propertiesd,等等!而且重项目开始到项目上线,必须经过重重环境的测试,这时我们每次部署都要去编辑配置文件中的某些配置项比如,数据库的地址啊,缓存地址啊,等等,太麻烦了,使用Maven Profile 指定配置文件打包,完美解决问题!


我是在原有的项目下进行添加的,因此文章也是在原有项目的基础上写滴!


前言


我手中的项目是maven+ssm架构的,配置文件如图所示!


mvn 命令指定仓库地址 mvn 指定profile_xml


额!不要吐槽!我也不知道为啥当初开发的人不好好地分一下,直接放在这个地方,看好结构,配置文件在resource资源文件夹下。


一、配置profile节点


在 pom.xml 文件中添加如下代码(与dependencies元素同级)


<profiles>
        <profile>
            <!-- 开发环境 -->
            <id>development</id>
            <properties>
                <environment>development</environment> <!-- 节点名字environment随意 用于下方指定 -->
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault> <!-- 默认激活该profile节点-->
            </activation>
        </profile>
        <profile>
            <!-- 测试环境 -->
            <id>test</id>
            <properties>
                <environment>test</environment>
            </properties>
        </profile>
        <profile>
            <!-- 预演环境 -->
            <id>preview</id>
            <properties>
                <environment>preview</environment>
            </properties>
        </profile>
        <profile>
            <!-- 生产环境 -->
            <id>production</id>
            <properties>
                <environment>production</environment>
            </properties>
        </profile>
    </profiles>


二、添加与profile配置相对应的配置文件目录


在resources目录下创建environment目录 在此目录下分别创建profile配置中对应的目录


mvn 命令指定仓库地址 mvn 指定profile_mvn 命令指定仓库地址_02


之后将配置文件分别弄到各个环境文件夹中


三、配置resource节点


<!-- 设置配置文件打包以及输出路径 -->
<resources>
    <resource>
        <directory>src/main/resources</directory> <!--打包时包含src/main/resources目录下所有文件以及子目录 -->
        <excludes> <!--打包时排除节点-->
            <exclude>environment/development/*</exclude> <!--打包时排除src/main/resources/environment/development下所有-->
            <exclude>environment/test/*</exclude><!-- 同上 -->
            <exclude>environment/preview/*</exclude><!-- 同上 -->
            <exclude>environment/production/**</exclude><!-- 同上 -->
        </excludes>
    </resource>
    <resource>
        <!-- 打包时包含src/main/resources/environment/${environment}下所有文件,environment变量值和上面随意写的一样 -->
        <directory>src/main/resources/environment/${environment}</directory>
        <targetPath></targetPath><!-- 打包文件输出位置 这里得说一下我这里什么都不写 位置就是上方directory节点中配置的路径 你们懂得!-->
    </resource>
</resources>


来个图!


mvn 命令指定仓库地址 mvn 指定profile_mvn 命令指定仓库地址_03


对了,那个※号是表示排除的力度,一个※表示排除当前目录下文件,两个※表示当前目录下的文件夹和文件!


四、打包发布项目


更新maven配置,会发现idea右方maven选项栏中出现Profile配置


mvn 命令指定仓库地址 mvn 指定profile_xml_04


打完的包会在target目录中


指定环境打包命令:


mvn package -PTest (-p+环境名称 第一个要大写)


烦恼轻松解决!


陛下...看完奏折,点个赞再走吧!