文档章节

Maven分环境打包方案

闰土的好友猹
 闰土的好友猹
发布于 2016/11/21 14:10
字数 603
阅读 94
收藏 6

Maven分环境打包方案

在学习Spring Boot过程中,搭建了Melon-Boot这个项目,同时学习到Boot与Maven结合,生成项目的打包方案。我们也可以看到很多互联网公司内部会划分有开发、测试、发布等不同阶段的环境,不同的环境之间的服务配置项需要进行区分,切换。常见的环境变量有:数据库连接配置、Zookeeper Dubbox配置、URL资源配置等等。

本文将给出与Spring Boot相似的配置方法,应用于Spring4.X当中,与Maven相结合,管理不同环境的配置文件,通过profile实现不同环境的打包。

目标

  • 对src/main/resources的properties进行分环境管理
  • 对src/main/resource的dev_conf、prod_conf、test_conf进行分环境管理

定义profile

在项目pom中定义多个环境,如下所示:

<profiles>
  <!--日常开发环境-->
  <profile>
    <id>test</id>
    <properties>
      <profileActive>test</profileActive>
    </properties>
  </profile>
  <!--预发布环境-->
  <profile>
    <id>dev</id>
    <properties>
      <profileActive>dev</profileActive>
    </properties>
  </profile>
  <!--线上环境-->
  <profile>
    <id>prod</id>
    <properties>
      <profileActive>prod</profileActive>
      <!--<package.environment>prod</package.environment>-->
    </properties>
  </profile>
</profiles>

定义resources插件

在build中定义resources资源打包规则,如下所示:

<resources>
    <resource>
        <!--指定打包时,需要特殊处理的文件路径-->
        <directory>src/main/resources</directory>
        <!--处理文件时,需要对文件进行变量替换-->
        <filtering>true</filtering>
        <excludes>
            <!--指定打包时,不包含以下文件-->
            <exclude>application-dev.properties</exclude>
            <exclude>application-prod.properties</exclude>
            <exclude>application-test.properties</exclude>
            <exclude>application.properties</exclude>
        </excludes>
    </resource>
    <resource>
        <filtering>true</filtering>
        <directory>src/main/resources</directory>
        <includes>
            <include>application-${profileActive}.properties</include>
            <include>application.properties</include>
        </includes>
    </resource>
    <resource>
        <directory>src/main/java</directory>
        <filtering>false</filtering>
    </resource>
</resources>

执行命令

  1. 执行mvn clean清理上次编译的target文件;
  2. 如果是IDEA,在Maven Project面板中勾选dev即可,执行步骤3,否则跳过看步骤4;
  3. 执行mvn package打包项目,可以看到application.properties和application-dev.properties;
  4. 执行mvn clean package -Dmaven.test.skip=true -P dev -e打包项目。结果和步骤3一致。

拓展知识

Maven标准的目录结构
src
  -main
      –bin 脚本库
      –java java源代码文件
      –resources 资源库,会自动复制到classes目录里
      –filters 资源过滤文件
      –assembly 组件的描述配置(如何打包)
      –config 配置文件
      –webapp web应用的目录。WEB-INF、css、js等
  -test
      –java 单元测试java源代码文件
      –resources 测试需要用的资源库
      –filters 测试资源过滤库
  -site Site(一些文档)
target
LICENSE.txt Project’s license
README.txt Project’s readme

© 著作权归作者所有

共有 人打赏支持
闰土的好友猹
粉丝 6
博文 43
码字总数 32948
作品 0
杭州
后端工程师
maven根据不同环境 不同配置打包

1.正确打包 项目有三种环境: 1.本地开发环境(local) 2.开发测试环境(dev) 3.线上生产环境(product) 不同的环境有不同的配置,比如数据库连接什么的....maven打包时默认去resources文件夹下打...

努力学的程序员
2016/04/28
1K
1
《Maven权威指南》学习笔记十五_装配(Assembly Plugin)

构建一个打包好的命令行应用程序 使用"mvn exec:java ..."方式执行打包后Jar包中的Main方法,Maven能够自动加载依赖,但如果要把Jar包分发给别人使用,必须连同各种依赖环境一起交付。 Mave...

SimpleClean
2013/03/27
0
0
Maven学习:部分常见问题记录

1、Maven打包时出现错误:File encoding has not been set, using platform encoding GBK 解决方案: 在下加入 UTF-8 如果是maven3,则只需要 UTF-8 2、m2e打包时出现错误:Unable to locate ...

anrainie
2012/12/11
0
0
jenkins自动部署

一.说明 经过一段时间的研究与讨论(关于自动化部署及自动化运维),初步确定方案,并已经开始实施。 根据目前公司的服务器环境及系统架构,以及当前市面流行趋势,对工具的使用进行了确定,为...

邱野
2016/10/12
0
0
maven 根据P参数值打包动态修改properties文件中值或一定properties

由于本人 最近忙着公司事情,昨天没有写博客,今天就继续写吧 需求:由于最近开发clover项目 ,没有使用spring,更没有使用任何框架,而使用J2EE的web工程,所以连接ZK和MongoDB、Redis等服务...

stark_summer
2015/01/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

awk命令用法介绍

10月18日任务 9.6/9.7 awk 1.awk(上)(下) 1.awk 分段操作功能 指定分隔符,并把第一段打印出来,不会改动文件内容 将所有内容打印出来 awk 没有指定分隔符号,则会默认用空格或者空白字符...

hhpuppy
45分钟前
1
0
Spring Cloud Eureka Server高可用之:在线扩容

本文共 1591字,阅读大约需要 6分钟 ! 概述 业务微服务化以后,我们要求服务高可用,于是我们可以部署多个相同的服务实例,并引入负载均衡机制。而微服务注册中心作为微服务化系统的重要单元...

CodeSheep
57分钟前
1
0
内网esxi主机上安装CoreOS虚拟机

CoreOS是一个为专门运行容器而设计的轻量级linux发行版,旨在通过轻量的系统架构和灵活的应用程序部署能力简化数据中心的维护成本和复杂度。它没有包管理工具,运行容器化应用以提供服务;默...

hiwill
今天
1
0
20181018 上课截图

![](https://oscimg.oschina.net/oscnet/49f66c08ab8c59a21a3b98889d961672f30.jpg) ![](https://oscimg.oschina.net/oscnet/a61bc2d618b403650dbd4bf68a671fabecb.jpg)......

小丑鱼00
今天
3
0
WinDbg

参考来自:http://www.cnit.net.cn/?id=225 SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols ctrl + d to open dump_file Microsoft (R) Windows Debugger Version 6.12.0002.633......

xueyuse0012
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部