Maven 如何为不同的环境打包 —— 开发、测试和生产环境

在开发过程中,我们的软件会面对不同的运行环境,比如开发环境、测试环境、生产环境,而我们的软件在不同的环境中,有的配置可能会不一样,比如数据源配置、日志文件配置、以及一些软件运行过程中的基本配置,那每次我们将软件部署到不同的环境时,都需要修改相应的配置文件,这样来回修改,是个很麻烦的事情。有没有一种方法能够让我们不用修改配置就能发布到不同的环境中呢?当然有,这就是接下来要做的事。

当然,这里的前提是使用maven做为构建工具。

使用maven来实现多环境的构建可移植性,需要借助maven提供的profile功能,通过不同的环境激活不同的profile来达到构建的可移植性。

一、配置profile

首先是profile配置,在pom.xml中添加如下profile的配置: 

<profiles>    <profile>        <!-- 本地开发环境 -->        <id>dev</id>        <properties>            <profiles.active>dev</profiles.active>        </properties>        <activation>            <activeByDefault>true</activeByDefault>        </activation>    </profile>    <profile>        <!-- 测试环境 -->        <id>test</id>        <properties>            <profiles.active>test</profiles.active>        </properties>    </profile>    <profile>        <!-- 生产环境 -->        <id>product</id>        <properties>            <profiles.active>product</profiles.active>        </properties>    </profile></profiles>

二、配置文件

针对不同的环境,我们定义不同的配置文件,而这些配置文件都做为资源文件放到maven工程的resources目录下,即src/main/resources目录下,且各个环境的配置分别放到相应的目录下,而所有环境都公用的配置,直接放到src/main/resources目录下或WEB-INF/目录下。如下图所示:

三、maven资源插件配置

 在配置文件在resource目录下时,可以直接如下配置:

<build/>  <filters>      <filter>${project.basedir}/src/main/resources/environment/env-${profiles.active}.properties</filter>  </filters>  <resources>      <resource>          <directory>src/main/resources</directory>          <filtering>true</filtering>      </resource>  </resources></build>

但是当配置文件在WEB-INF目录下时,需要增加如下配置:
<plugin>    <groupId>org.apache.maven.plugins</groupId>    <artifactId>maven-war-plugin</artifactId>    <configuration>        <warName>acfun-online</warName>        <webResources>            <resource>                <directory>src/main/webapp</directory>                <filtering>true</filtering>            </resource>        </webResources>    </configuration></plugin>
时间: 2024-10-10 11:52:38

Maven 如何为不同的环境打包 —— 开发、测试和生产环境的相关文章

Docker标准化开发测试和生产环境

对于大部分企业来说,搭建 PaaS 既没有那个精力,也没那个必要,用 Docker 做个人的 sandbox 用处又小了点. 可以用 Docker 来标准化开发.测试.生产环境. Docker 占用资源小,在一台 E5 128 G 内存的服务器上部署 100 个容器都绰绰有余,可以单独抽一个容器或者直接在宿主物理主机上部署 samba,利用 samba 的 home 分享方案将每个用户的 home 目录映射到开发中心和测试部门的 Windows 机器上. 针对某个项目组,由架构师搭建好一个标准的

Maven 为不同的环境打包 -开发,测试,生产

每个项目都会有多套运行环境,最基本的就是Dev.QA.Prod,不同的环境对应的配置也不尽相同,比如说数据库连接,文件路径,WebServices address 等等. 不同环境下需要构建不同的包,那么我们可以通过以下两种方式来解决: 一.定义多个 pom,使用 -f <pom_file> 指定 e.g. pom.xml (default) pom_qa.xml pom_prod.xmlBuild war for qa: mvn clean package -f pom_qa.xmlBuil

中小企业可以用docker来标准化开发、测试、生产环境

一.使用 Docker 搭建 Tomcat 运行环境 1 Docker与虚拟机 2 搭建过程 2.1 准备宿主系统 准备一个 CentOS 7操作系统,具体要求如下: 必须是 64 位操作系统 建议内核在 3.8 以上 通过以下命令查看您的 CentOS 内核: # uname -r 2.2 安装Docker # yum install docker 可使用以下命令,查看 Docker 是否安装成功: # docker version 若输出了 Docker 的版本号,则说明安装成功了,可通过以

docker技术剖析--中小企业可以用docker来标准化开发、测试、生产环境

一.使用 Docker 搭建 Tomcat 运行环境 1 Docker与虚拟机 2 搭建过程 2.1 准备宿主系统 准备一个 CentOS 7操作系统,具体要求如下: 必须是 64 位操作系统 建议内核在 3.8 以上 通过以下命令查看您的 CentOS 内核:   # uname -r 2.2 安装Docker   # yum install docker 可使用以下命令,查看 Docker 是否安装成功:   # docker version 若输出了 Docker 的版本号,则说明安装成功

Vue配置开发,测试,生产环境api

vue配置开发,测试,生产环境api https://segmentfault.com/a/1190000016664571       (参考一) https://blog.csdn.net/qq_16122415/article/details/80519656         (参考二) 原文地址:https://www.cnblogs.com/Antwan-Dmy/p/12196915.html

手游公司运维之利用Rundeck自动化运维工具和Shell脚本构建测试环境代码发布平台和生产环境代码发布平台

在做手游运维工作之前,我接触的代码发布都是常规的软件发布,有固定的发布周期.之前工作的那个外企有严格的发布周期,一年中的所有发布计划都是由Release Manager来控制,每次发布之前都需要做一些准备工作,如填写发布表单,上传发布需要的资源文件,联系发布过程中的相关人员,如开发和测试.最后在公司内部开发的发布平台上按照指定的时间点击鼠标对一个集群内的几台主机或全部主机进行代码发布.这个发布平台还是基于rsync服务实现的.虽然每个星期都有各种服务的发布,但是整个发布流程是可以控制的,并且发布

使用vue-cli构建 webpack打包工具时,生产环境下,每次build时,删除dist目录,并重新生成,以防dist目录文件越来越多。

首先,需要使用webpack的插件CleanWebpackPlugin,安装命令如下: npm install --save-dev clean-webpack-plugin 其次,需要在生产环境提供的文件:build/webpack.prod.conf.js的plugins节点下添加如下代码: new CleanWebpackPlugin( ['dist'], //匹配删除的文件 { root:path.resolve(__dirname,'../')     //根目录 verbose:tr

测试及生产环境tomcat配置

环境: 系统为suse11 sp1 软件版本: jdk1.7.0_80.zip apr.tar.gz apache-tomcat.tar.gz tomcat部署目录为/apps,应用以ebay为例 注意: 实际配置要根据实际环境做改变,仅供参考 1.jdk环境配置 root用户 unzip jdk1.7.0_80.zip -d /usr/local ln -s /usr/local/jdk1.7.0_80 /usr/local/jdk vi /etc/profile 添加 export JAVA

SwitchHosts高效切换host -- 让开发,测试,线上环境切换更容易

CleverCode在写php项目中,经常需要配置host.将某个域名指向某个ip. 手动配置C:\Windows\System32\drivers\etc\hosts,非常不方便.这里分享一个可以高效切换host工具. 1 下载地址 http://download.csdn.net/detail/clevercode/9558675 2 配置方案 2.1 配置空白host.即不指向ip 2.2 配置host方案 3 使用某个方案 点击右下角勾选. 4 查看当前系统的host