美文网首页java
maven环境隔离

maven环境隔离

作者: 二妹是只猫 | 来源:发表于2019-03-04 10:11 被阅读0次

    环境隔离在实际工作中必然会遇到,属于一次投入长久收益的事情,所以本篇把maven的环境隔离总结一下。

    maven环境隔离解决的实际问题:
    • 避免人工修改犯错(忘了修改线上、线下地址)
    • 轻松分环境编译、打包、部署
    通常实际的项目环境:
    本地开发环境(Local)
    开发环境(Dev)
    测试环境(Beta)
    线上环境(Prod)
    
    实际操作:
    1. 拿出需要隔离的文件:
      resource.jpg
      如上图,我需要隔离datasource.properties文件。首先在不带后缀的主resources中将datasource.properties拿出,放到创建的3个有后缀resources文件中,记住他们的后缀分别是beta、dev、prod,待会儿要用。
    2. pom文件中build节点下添加需要隔离的文件:
        <build>
          <resources>
                <resource>
                    <directory>src/main/resources.${env}}</directory>
                    <excludes>
                        <exclude>*.jsp</exclude>
                    </excludes>
                </resource>
    
                <resource>
                    <directory>src/main/resources</directory>
                </resource>
            </resources>
    
        </build>
    

    在resources中用${环境名}代表要加的后缀。

    1. 在pom根节点下profiles中添加环境:
    <profiles>
            <profile>
                <id>dev</id>
                <properties>
                    <env>dev</env>
                </properties>
            </profile>
            <profile>
                <id>beta</id>
                     <activation>
                        <activeByDefault>true</activeByDefault>
                    </activation>
                <properties>
                    <env>beta</env>
                </properties>
            </profile>
            <profile>
                <id>prod</id>
                <properties>
                    <env>prod</env>
                </properties>
            </profile>
    </profiles>
    

    这个时候就会提醒你pom文件变动是否编译,确定后我们在idea右侧的Maven Projects中就可以看到环境已经生成了并且默认beta环境:


    Maven Projects.jpg

    这样一个简单的环境隔离就OK了。

    补充:可以通过命令:mvn clean package -Dmaven.test.skip=true -Pbeta 来使用mvn命令编译项目,然后查看target文件下的class文件查看是否隔离成功 (-P后跟的是你想要编译的环境,这里填的是beta)

    相关文章

      网友评论

        本文标题:maven环境隔离

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