maven环境隔离

一、前言

在Maven项目开发中,一般都会有四种环境情形: 
1. 本地环境(Local) 
2. 开发环境(Dev) 
3. 测试环境(Beta) 
4. 发布环境(Prod) 
在不同环境中,总会遇到FTP服务器配置不一样,数据库配置不一样等一系列问题,这样Maven的环境隔离将有助于我们轻松切换不同配置环境。

maven环境隔离可以解决:

  1. 避免人工修改的弊端,即容易犯错
  2. 避免分环境打包、编译、部署

三、maven环境隔离的配置及原理

pom.xml中builder节点上增加如下配置

<resources>
      <resource>
        <directory>src/main/resources.${deploy.type}</directory>
        <excludes>
          <exclude>*.jsp</exclude>
        </excludes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
</resources>

其中${deploy.type}对应下述配置节点中的deploy.type属性值。 
接着在pom.xml中增加profiles节点

<profiles>
    <profile>
      <id>dev</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
         <deploy.type>dev</deploy.type>
      </properties>
    </profile>
    <profile>
      <id>beta</id>
      <properties>
        <deploy.type>beta</deploy.type>
      </properties>
    </profile>
    <profile>
      <id>prod</id>
      <properties>
        <deploy.type>prod</deploy.type>
      </properties>
    </profile>
  </profiles>

这里配置了activeByDefault结点为true,表示当不选择编译环境时,默认使用dev(开发)环境,这也是推荐的配置。上述提到的deploy.type将会直接从这里的deploy.type中拿值,来表示是哪个编译环境。这两个结点缺一不可!

四、Maven环境隔离目录初始化

新建要隔离的文件夹,并把要隔离的文件分开,公共的留下,如下: 

之前我们在pom中配置了环境隔离的目录,resources下,那么就下来就是将需要进行隔离的文件单独放到一个文件夹中,公共的文件留在resources目录下即可。

    Spring、Spring MVC以及mybatis-generator的配置文件属于公用文件,所以他们不用进行隔离,就在resources目录下就好。数据库配置文件、日志文件、项目配置文件、支付宝集成配置文件需要进行隔离,拿一个最典型的例子来说,由于编译环境的不同,当我们的项目上线的时候,需要将支付宝文件中的RSA2密钥以及回调地址全部换为上线的地址,不能够继续使用开发的地址,所以这些文件需要被隔离。

    综上,隔离目录初始化为:

五、Maven环境隔离的使用

当我们配置好以后,在Idea的右侧有一个Maven Project,点开它,会发现多出了一个Profiles

因为我们设置了默认编译环境,所以Maven默认勾选了dev环境。当我们使用的时候有两种方法:

(1)、先在Profiles里勾选需要编译的环境选项,最好只勾选一个。然后在Idea的Terminal里执行如下命令:

mvn clean package -Dmaven.test.skip=true

这个是Maven的自带命令,先清除一下包文件再进行打包编译,在编译的同时跳过Maven的单元测试。

(2)、直接在Idea的Terminal中执行如下命令:

mvn clean package -Dmanven.test.skip=true -Pxxx

这个命令的前面是一样的,只不过是多了一个参数-Pxxx,其中xxx表示你想编译的环境,-P表示的是使用Maven编译指令,

例如我想把项目发布到线上,于是我可以这样写:

mvn clean package -Dmaven.test.skip=true -Pprod

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值