maven auto-config 多环境自动打包

本文介绍使用Maven插件auto-config实现多环境自动打包的方法。通过配置auto-config.xml、template.vm及antx.property文件,可以轻松实现不同环境下的配置替换。

摘自:http://doc.okbase.net/bjhecwq/archive/118121.html

maven有许多优秀的插件,最近在研究打包中替换多重环境的配置,同事介绍使用阿里的auto-config,使用了一下确实不错。
auto-config其实和ant时代的字符替换差不多太多,只是ant需要自己写脚本完成这些事情,但是auto-config通过配置就可以了。
auto-config的核心技术我个人认为是volicty的模板技术,包括里面的占位符oplacehold都是以${}volicty的语法定义的。
auto-config主要涉及的文件有以下部分:auto-config.xml,template.vm,antx.property.
auto-config.xml主要定义那些字符需要替换,他们的默认值是什么,那 些文件需要替换占位符,以及输出的文件。
template.vm 主要定义模板文件,其实就是我们需要的配置文件,只不过这里需要替换的符号都以占位符的形 式输出。
antx.property 定义了占位符中 的具体的值用于替换占位符的值。
如果使用auto-config:
1.安装maven
2.使用auto-config的插件,需要在pom.xml中plugin中插入,后续会详细介绍,这里有必要说一下大陆的长城防火墙,太厉害了,maven中央仓库下载一个jar包需要半个小时,这里可以再maven的setting文件的mirrors增加如下配置:、

nexus-osc
external:*
Nexus osc
http://maven.oschina.net/content/groups/public/


表示从oschina这个站下载所有的maven文件。
pom.xml增加auto-config的配置

json


com.alibaba.citrus.tool
autoconfig-maven-plugin
1.2

${user.dir}/${autoconfig.properties}



package

autoconfig






这里的配置也是网络上download下来的,我手动添加了一个配置

${user.dir}/${autoconfig.properties}

这个用来干嘛的呢?用于自定义antx.property的文件位置,为什么要自定义文件位置?原因是方便在多环境中指定参数来修改配置。
这里user.dir是当前工程的路径,autoconfig默认的文件位置是在user.home目录下的。

这里说了,在多环境需要修改配置,所以需要在pom.xml中配置多个环境的profile


dev

<autoconfig.properties>antx-dev.properties</autoconfig.properties>



deploy

<autoconfig.properties>antx-pro.properties</autoconfig.properties>





dev

<autoconfig.properties>antx-dev.properties</autoconfig.properties>



pro

<autoconfig.properties>antx-pro.properties</autoconfig.properties>



在实际的编译过程中只需要 mavn package -P dev或者 mavn package -P pro就可以打包生产或者开发下的包了
pom.xml定义好了之后,需要在WEB-INF目录下面增加一个META-INF的文件夹以及在该文件夹下新增autoconf文件夹
在autoconf文件夹下放置auto-config.xml以及所有的模板文件,注意模板文件必须放在这里,我目前没有找到放到其他位置的配置。

auto-config的具体配置:
<?xml version="1.0" encoding="UTF-8"?>










这里property定义的名字都是占位符的名字,defaultvalue是默认值
script下面定义的具体的模板,以及输出的文件。

web.vm是模板文件定义了,也就是我们的配置文件,变量通过占位符分割
<?xml version="1.0" encoding="UTF-8"?>






antx.property是具体配置的落地,可以有多个,通过mvn -p 制定具体的配置文件
petstore.work=1
petstore.loggingRoot=2
petstore.upload=3
petstore.loggingLevel=4
如果没有在pom。xml 通过configuration配置默认的antx.properties是在项目的根目录下,或者在user.home下的,如果没有autoconfig需要你创建。

通过修改四个文件基本上就可以使用auto-config了,打包后的文件已经将占位符修改成我们需要的值了,这个是多环境打包的神器。

原文链接:http://blog.youkuaiyun.com/bjhecwq/article/details/41855973

posted on 2016-05-03 08:52  Alfa 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/wuyifu/p/5453760.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值