AutoConfig工具使用

下载安装Auto工具包:

tar zxvf autoconfig-1.0.9.tgztar zxvf autoexpand-1.0.9.tgzcp autoconfig /usr/local/bincp autoexpand /usr/local/bin------------------------------------------------------------------------------------------------------
引:<filter>${user.home}/antx.properties</filter>用指定的properties文件(${user.home}/antx.properties)中的值,替换上述文件行中的placeholders(占位符)

AutoConfig不需要提取源码,也不需要重新build,即可改变目标文件中所有配置文件中placeholders的值,并对placeholder及其值进行检查。

AutoConfig Features:

名称 描述
两种用法

  • 既可独立使用(支持Windows和Unix-like平台)。
  • 也可以作为maven插件来使用。

对目标文件而不是源文件进行配置

  • 可对同一个目标文件反复配置。
  • 配置时不依赖于项目源文件。
  • 支持嵌套包文件,例如:ear包含war,war又包含jar。
  • 高性能,特别对于嵌套的包文件。

验证和编辑properties

  • 自动发现保存于war包、jar包、ear包中的properties定义。
  • 验证properties的正确性。
  • 交互式编辑properties。
  • 当配置文件中出现未定义的placeholders时,提示报错。



/META-INF/autoconf目录用来存放AutoConfig的描述文件,以及可选的模板文件。



auto-config.xml是用来指导AutoConfig行为的关键描述文件

创建war和jar包的AutoConfig机制,关键在于创建war或jar目标包中的/META-INF/autoconf/auto-config.xml描述文件

-----------------------------------------------------------------------------------------------------------------------------------

AutoConfig描述文件示例:

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <group>

        <property name="petstore.work"
                    description="应用程序的工作目录" />

        <property name="petstore.loggingRoot"
                    defaultValue="${petstore.work}/logs"
                    description="日志文件目录" /> 

        <property name="petstore.upload"
                    defaultValue="${petstore.work}/upload"
                    description="上传文件的目录" />

        <property name="petstore.loggingLevel"
                    defaultValue="warn"
                    description="日志文件级别"> 

            <validator name="choice"
                         choice="trace, debug, info, warn, error" /> 

        </property>

    </group>
    <script>
        <generate template="WEB-INF/web.xml" /> 

        <generate template="WEB-INF/common/resources.xml" />
    </script>
</config>

   


定义properties



定义property的验证规则(可选)



生成配置文件的指令。


定义一个property的完整格式如下

例如下定义一个property

<property
    name="..."
    [defaultValue="..."]
    [description="..."]
    [required="true|false"]
>
    <validator name="..." />
    <validator name="..." />
    ...
</property>

可用的property参数包括:

定义property时可用的参数如下:

参数名 说明
name Property名称。
defaultValue(可选) 默认值。默认值中可包含对其它property的引用,如${petstore.work}/logs
description(可选) 对字段的描述,这个描述会显示给deployer,这对他理解该property非常重要。
required(可选) 是否“必填”,默认为true。如果deployer未提供必填项的值,就会报错。

定义property的验证规则

目前,有以下几种验证器:

可用的property验证规则如下

验证规则 说明
<validator name="boolean" />

Property值必须为truefalse

<validator name="choice"
           choice="trace, debug, info, warn, error" />

Property值必须为choice所定义的值之一。

<validator name="email" />

Property值必须为合法的email格式。

<validator name="fileExist"
           [file="WEB-INF/web.xml"] />

Property值必须为某个存在的文件或目录。

如果指定了file,那就意味着property值所指的目录下,必须存在file所指的文件或子目录。

<validator name="hostExist" />

Property值必须为合法的IP地址,或者可以解析得到的域名。

<validator name="keyword" />

Property值必须为字母、数字、下划线的组合。

<validator name="number" />

Property值必须为数字的组合。

<validator name="regexp"
           regexp="..."
           [mode="exact|prefix|contain"] />

Property值必须符合regexp所指的正则表达式。

其中,mode为匹配的方法:

  • 完全匹配exact
  • 前缀匹配prefix
  • 包含contain

如未指定mode,默认mode为contain。

<validator name="url"
           [checkHostExist="false"]
           [protocols="http, https"]
           [endsWithSlash="true"] />

Property值必须是合法URL。

假如指定了checkHostExist=true,那么还会检查域名或IP的正确性;

假如指定了protocols,那么URL的协议必须为其中之一;

假如指定了endsWithSlash=true,那么URL必须以/结尾。

生成配置文件的指令

描述文件中,每个<generate>标签指定了一个包含placeholders的配置文件模板,具体格式为:

生成配置文件的指令:

<generate
    template="..."
    [destfile="..."]
    [charset="..."]
    [outputCharset="..."]
>

下面是参数的说明:

生成配置文件的指令参数:

参数名 说明
template
需要配置的模板名。

模板名为相对路径,相对于当前jar/war/ear包的根目录。

destfile(可选)
目标文件。

如不指定,表示目标文件和模板文件名相同,但是默认生成路径为包下的根目录,即Base URL目录

charset(可选)
模板的字符集编码。

XML文件不需要指定charset,因为AutoConfig可以自动取得XML文件的字符集编码;

对其它文件必须指定charset。

outputCharset(可选)
目标文件的输出字符集编码。

如不指定,表示和模板charset相同。

---------------------------------------------------------------------------------------------------------------------------

建立模板文件:

在auto-config.xml中定义了模板的位置后,把模板文件放在指定的位置。

AutoConfig的寻找模板的逻辑是:

  • 如果在auto-config.xml所在的目录下发现模板文件,就使用它;
  • 否则在包的根目录中查找模板文件;如果两处均未找到,则报错。

书写模板是很简单的事,你只要:

  • 把需要配置的点替换成placeholder:“${property.name}”。当然,你得确保property.name被定义在auto-config.xml中。
  • 假如模板中包含不希望被替换的运行时的placeholder“${...}”,需要更改成“${D}{...}” 。

此外,AutoConfig模板其实是由Velocity模板引擎来渲染的。因此,所有的placeholder必须能够通过velocity的语法。

使用不符合velocity语法的placeholders

例如,下面的placeholder被velocity看作非法:

${my.property.2}

解决的办法是,改写成如下样式:

${my_property_2}-----------------------------------------------------------------------------------------------------------------------------------Autoconfig工具的使用

最简单的AutoConfig命令

autoconfig petstore.war        无论petstore.war是一个zip包还是目录,AutoConfig都会正确地生成其中的配置文件

AutoConfig会生成一个日志文件,就在auto-config.xml所在的目录下,名字为:auto-config.xml.log

默认情况下,AutoConfig会按下列顺序查找user properties:

  1. 当前目录 ./antx.properties
  2. 当前用户HOME目录/antx.properties

你可以指定一个自己的properties文件,用下面的命令:

autoconfig ...  –u  my.props

你可以指定另一个输出文件或目录,这样,原来的文件或目录就不会被修改:

autoconfig petstore.war  –o  petstore-configured.war

如果antx.properties文件中指定了相应”Property name“的替换值,而auto-config.xml描述文件中不存在该”Property name“时,则执行autoconfig时会提示如下图所示要求更新antx.properties配置文件内容。逐项选择Next后再选Yes保存即可。

摘自http://webx.taobao.org/docs/autoconfig.html 

AutoConfig工具使用

时间: 2024-10-09 18:33:38

AutoConfig工具使用的相关文章

AutoConfig工具使用指南

第 13 章 AutoConfig工具使用指南 13.1. 需求分析 13.1.1. 解决方案 13.2. AutoConfig的设计 13.2.1. 角色与职责 13.2.2. 分享二进制目标文件 13.2.3. 部署二进制目标文件 13.2.4. AutoConfig特性列表 13.3. AutoConfig的使用 -- 开发者指南 13.3.1. 建立AutoConfig目录结构 13.3.2. 建立auto-config.xml描述文件 13.3.3. 建立模板文件 13.4. Auto

Webx框架:AutoConfig

AutoConfig AutoConfig是一个小工具,用于解决不同机器之间配置不同的问题.有时候有些配置,比如数据库地址.缓存地址等,这些配置与环境有关.每次在不同的环境中都需要重新修改配置,比较麻烦.解决这个问题有两种方法,一种是通过maven中的filter工具,另外一种是使用autoconfig.maven-filter工具的缺点是,当项目编译打包之后,无法再修改配置文件.而autoconfig可以通过一个脚本指令,直接修改打包过的配置文件,不需要重新编译,这样节省了不少时间. 接下来介

Webx autoconfig 多环境打包 使用总结

背景 最近在使用webx 的 autonconfig工具进行多环境间配置文件的变量替换. 常常我们遇到不同环境打包问题都是自己搞一套脚步来做,但是如何成体系的解决这一问题? autoconfig工具主要有两个用法: 不同环境环境的打包要使用不同的配置(如DB连接,版本信息等),这时候可以把需要替换的配置定义为占位符,使用maven的profile和maven的autoconfig插件来指定不同的properties文件,打包的时候,autoconfig就回去对应的properties文件中取对应

java自动化配置工具 - autoconfig 简介

对于java程序员来说各种各样的配置文件是司空见惯的,比如spring的bean配置,struts的action配置等等.有些配置会随着运行环境的变化而各不相同,最典型的就是jdbc驱动的配置,在开发环境可能链接到开发本地的数据库,测试环境则有一套测试专用的数据库环境,线上的生产环境也会有一套数据库,如果一个应用要部署到多个idc中,那这些配置又有可能各不相同.解决这个问题,可能有些团队使用同一份配置文件,在部署到不同的环境之前人肉的修改一下配置,还有些团队会为每一个环境维护一份配置文件.这些做

autoconfig操作小结

1.添加maven配置在pom文件中 <profile> <id>prod</id> <properties> <autoconfig.userProperties>src/filter/develop.properties</autoconfig.userProperties> </properties> </profile> <plugin> <groupId>com.alibaba

Autoconf/Automake工具简介

http://www.cnblogs.com/xf-linux-arm-java-android/p/3590770.html 在linux下编程的时候,有时候工程项目很大,文件比较多,此时需要使用自动创建Makefile文件功能.也就是使用Autoconf/Automake工具自动生成Makefile,为编译程序带来了方便,当前大多数软件包都是用此方法生成,Autoconf/Automake工具组主要包括autoconf,automake,perl,m4. Autoconfig/Automak

NetSetMan IP地址切换工具

http://www.netsetman.com/en/freeware NetSetMan NetSetMan是一个网络设置管理器,它可以很容易在6种不同的,视觉结构化的配置之间切换,包括: IP地址(IPv4的和IPv6!) 网关(包括跃点数 Metric) DNS 服务器 WINS 服务器 WiFi 管理 计算机名 工作组 默认打印机 网络驱动器 网卡状态 连接(RAS/DUN/PPP/VPN) DNS 后缀 路由表 SMTP 服务器 Hosts 文件条目 系统设置 MAC 地址 脚本(B

【Windows10&nbsp;IoT开发系列】API&nbsp;移植工具

原文:[Windows10 IoT开发系列]API 移植工具 Windows 10 IoT Core 中是否提供你的当前 Win32 应用程序或库所依赖的 API? 如果不提供,是否存在可使用的等效 API? 此工具可以为你回答这些问题,并协助你将你的当前 Win32 应用程序和库迁移到 Windows IoT Core. Windows 10 IoT 核心版 API 移植工具可在 ms-iot/iot-utilities github 存储库中找到.下载存储库 zip 并将 IoTAPIPor

Eclipse工具安装

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 1.Windows Eclipse(分三步): ①下载好eclipse压缩包: ②解压eclipse压缩包: ③打开eclipse.exe即可,必须把JDK配置好. 下载地址:http://www.eclipse.org/downloads/eclipse-packages/ http://ftp.yzu.edu.tw/eclipse/technology/