文档章节

Maven部署多个环境

u
 udbwcso
发布于 2016/04/05 18:04
字数 402
阅读 158
收藏 13
点赞 2
评论 1

现实中一个项目往往需要部署到多个环境,如生产环境,测试环境等,但是各个环境的配置会有所不同.如果项目用到了maven可以使用properties-maven-plugin插件解决这个问题.

1.目录

2.配置

在pom.xml里

添加profiles

<profiles>
    <!-- 默认使用dev配置打包 命令 mvn package -->
    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <environment>dev</environment>
        </properties>
    </profile>

    <!--生产环境 mvn package -Pproduction-->
    <profile>
        <id>production</id>
        <properties>
            <environment>production</environment>
        </properties>
    </profile>
</profiles>

添加plugin

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0-alpha-2</version>
    <executions>
        <execution>
            <id>default-cli</id>
            <phase>initialize</phase>
            <goals>
                <goal>read-project-properties</goal>
            </goals>
            <configuration>
                <files>
                    <file>${basedir}/profiles/${environment}.properties</file>
                </files>
            </configuration>
        </execution>
    </executions>
</plugin>

pom.xml完整的配置

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.test</groupId>
    <artifactId>test</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>com.test.properties</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <profiles>
        <!-- 默认使用dev配置打包 命令 mvn package -->
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <environment>dev</environment>
            </properties>
        </profile>

        <!--生产环境 mvn package -Pproduction-->
        <profile>
            <id>production</id>
            <properties>
                <environment>production</environment>
            </properties>
        </profile>
    </profiles>

    <build>
        <finalName>${project.artifactId}-${project.version}</finalName>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>

        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>properties-maven-plugin</artifactId>
                <version>1.0-alpha-2</version>
                <executions>
                    <execution>
                        <id>default-cli</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>read-project-properties</goal>
                        </goals>
                        <configuration>
                            <files>
                                <file>${basedir}/profiles/${environment}.properties</file>
                            </files>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

dev.properties

log.level=DEBUG

production.properties

log.level=ERROR

log.properties

level=${log.level}

3.测试

使用以下命令:

mvn package

生成的war文件log.properties的内容为level=DEBUG

mvn package -Pproduction

生成的war文件log.properties的内容为level=ERROR

© 著作权归作者所有

共有 人打赏支持
u
粉丝 77
博文 34
码字总数 15709
作品 0
武汉
加载中

评论(1)

c
cdzhoubin
这个不错
同一个项目,在不同的机器上部署出来的jar包个数不一样

通过maven部署一个Java项目 在我的机器上通过 mvn install 命令,部署出来的依赖jar包是50个 而在另一台机器上部署出来的是30多个 问题会出在哪里呢? Java环境,Maven版本和私服都一样...

melnnyy ⋅ 2015/01/21 ⋅ 1

【maven学习】 利用Profile构建不同环境的部署包

项目开发好以后,通常要在多个环境部署,环境:本机环境(local)、(开发小组内自测的)开发环境(dev)、(提供给测试团队的)测试环境(test)、预发布环境(pre)、正式生产环境(prod),每种环境都有...

冷冷gg ⋅ 2016/08/19 ⋅ 0

持续集成和docker

现在的持续集成,因为docker技术的成熟,有了长足的进步。 记得我在以前的公司的时候,测试环境还有生产环境的发布都需要组长来发布。有时候,他忙的话,发布就会延后,特别是测试环节,直接...

miaojiangmin ⋅ 2016/11/07 ⋅ 0

maven学习(下)利用Profile构建不同环境的部署包

接上回继续,项目开发好以后,通常要在多个环境部署,象我们公司多达5种环境:本机环境(local)、(开发小组内自测的)开发环境(dev)、(提供给测试团队的)测试环境(test)、预发布环境(pre)、正式...

Carl_ ⋅ 2015/06/08 ⋅ 2

Jenkins + maven + git 多环境自动化部署

Jenkins + maven + git 多环境自动化部署 Jenkins篇 Jenkins版本:Jenkins ver. 2.119,对应的JDK版本是 1.8, tomcat版本是tomcat8,Jenkins war包下载下来,可以选用jar方式启动,也可以选...

赵传喜 ⋅ 05/08 ⋅ 0

微服务之配置服务器切换profile

最近遇到Spring-boot的多个profile切换问题,需求是这样的:微服务中引入了Spring Cloud Config,服务启动的时候,从Config Server中读取该实例对应的配置信息。本地开发环境可能使用的profi...

aoho ⋅ 2017/11/16 ⋅ 0

Eclipse Maven项目搭建

说明: 本文描述Eclipse环境下基于Maven的项目开发环境的搭建,操作系统为Windows 7 32位中文企业版。 使用的工具列表如下: 1. Oracle JDK 1.6 update 26 2. Eclipse 3.6.2 JavaEE (plugi...

丽天 ⋅ 2011/07/20 ⋅ 2

解决微服务profile遇到的问题

最近遇到Spring-boot的多个profile切换问题,需求是这样的:微服务中引入了Spring Cloud Config,服务启动的时候,从Config Server中读取该实例对应的配置信息。本地开发环境可能使用的profi...

禁区铁铍人 ⋅ 2017/11/29 ⋅ 0

Maven project multi environment config

在是用Jenkins进行项目自动部署的过程中,遇到一个问题:开发环境<dev>,内测环境<alpha>,测试环境<beta>,生产环境<production>的配置文件可能存在不同的情况,最初想到的是通过Git的多个b...

Geek-S ⋅ 2016/06/20 ⋅ 0

关于jenkins自动部署多个分支的问题

大家好:问一个关于jenkins自动部署的问题 我有一个maven项目,使用的是assemble插件打包,打成的是类似tomcat的目录结构的zip(有bin,conf,lib等目录), 其中bin目录里面有启动,停止脚步...

西夏一品堂 ⋅ 2016/08/08 ⋅ 3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Cube、Cuboid 和 Cube Segment

1.Cube (或Data Cube),即数据立方体,是一种常用于数据分析与索引的技术;它可以对原始数据建立多维度索引。通过 Cube 对数据进行分析,可以大大加快数据的查询效率 2.Cuboid 在 Kylin 中特...

无精疯 ⋅ 37分钟前 ⋅ 0

github太慢

1:用浏览器访问 IPAddress.com or http://tool.chinaz.com 使用 IP Lookup 工具获得github.com和github.global.ssl.fastly.net域名的ip地址 2:/etc/hosts文件中添加如下格式(IP最好自己查一...

whoisliang ⋅ 39分钟前 ⋅ 0

非阻塞同步之 CAS

为解决线程安全问题,互斥同步相当于以时间换空间。多线程情况下,只有一个线程可以访问同步代码。这种同步也叫阻塞同步(Blocking Synchronization). 这种同步属于一种悲观并发策略。认为只...

长安一梦 ⋅ 50分钟前 ⋅ 0

云计算的选择悖论如何对待?

人们都希望在工作和生活中有所选择。但心理学家的调查研究表明,在多种选项中进行选择并不一定会使人们更快乐,甚至不会产生更好的决策。心理学家Barry Schwartz称之为“选择悖论”。云计算为...

linux-tao ⋅ 52分钟前 ⋅ 0

我的第一篇个人博客

虽然这是个技术博客,但是,我总是想写一些自己的东西,所有就大胆的在这里写下了第一篇非技术博客。技术博客也很久没有更新,个人原因。 以后自己打算在这里写一些非技术博客,可能个人观点...

Mrs_CoCo ⋅ 53分钟前 ⋅ 0

Redis 注册为 Windows 服务

Redis 注册为 Windows 服务 redis 注册为 windows 服务相关命令 注册服务 redis-server.exe –service-install redis.windows.conf 删除服务 redis-server –service-uninstall 启动服务 re......

Os_yxguang ⋅ 53分钟前 ⋅ 0

世界那么大,语言那么多,为什么选择Micropython,它的优势在哪?

最近国内MicroPython风靡程序界,是什么原因导致它这么火呢?是因为他功能强大,遵循Mit协议开源么? 错!因为使用它真的是太舒服了!!! Micropython的由来,这得益于Damien George这位伟大...

bodasisiter ⋅ 57分钟前 ⋅ 0

docker 清理总结

杀死所有正在运行的容器 docker kill $(docker ps -a -q) 删除所有已经停止的容器(docker rm没有加-f参数,运行中的容器不会删掉) docker rm $(docker ps -a -q) 删除所有未打 dangling 标...

vvx1024 ⋅ 今天 ⋅ 0

关于学习

以前学车的时候,教练说了这样的一句话:如果一个人坐在车上一直学,一直学,反而不如大家轮流着学。因为一个人一直学,就没有给自己留空间来反思和改进。而轮流着学的时候大家下来之后思考上...

mskk ⋅ 今天 ⋅ 0

压缩工具之gzip-bzip2-xz

win下常见压缩工具:rar zip 7z linux下常见压缩工具:zip gz bz2 xz tar.gz tar.bz2 tar.xz gzip 不支持目录压缩 gzip 1.txt #压缩。执行后1.txt消失,生成1.txt.gz压缩文件 gzip -d 1.txt....

ZHENG-JY ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部