Maven实现autoconfig

autoconfig这种机制在软件开发和发布的过程中是非常方便也是非常必要的一种动态替换配置信息的一种手段,一种很贴切的比喻:这个就像在windows下面安装一个软件时,我们按照安装向导给我们弹出提示填写信息一样(这些信息就是一些定制化的信息)。

Maven的强大插件机制,可以和autoconfig机制结合起来,发挥巨大的威力。

实际项目中,基本都是在deploy下面实现配置文件的读取和替换的。这里,其实就是利用了一个maven-autoconf-plugin插件实现的这个功能。具体deploy下面pom.xml的配置片段如下:

<profiles>  
        <!-- Dev profile will configure all files and copy them to target/dev, for testing purpose -->  
        <profile>  
            <id>dev</id>  
            <activation>  
                <property>  
                    <name>env</name>  
                    <value>!release</value>  
                </property>  
            </activation>  
            <build>  
                <plugins>  
                    <!-- do auto config for integration test -->  
                    <plugin>  
                        <groupId>com.alibaba.maven.plugins</groupId>  
                        <artifactId>maven-autoconf-plugin</artifactId>  
                        <version>0.3-alpha-9</version>  
                        <executions>  
                            <execution>  
                                <phase>pre-integration-test</phase>  
                                <goals>  
                                    <goal>config</goal>  
                                </goals>  
                            </execution>  
                        </executions>  
                        <configuration>  
                            <destFiles>  
                                <destFile>${project.basedir}</destFile>  
                            </destFiles>  
                            <includeDescriptorPatterns>  
                                <!-- intl-site flavor -->  
                                <includeDescriptorPattern>autoconf/auto-config.xml</includeDescriptorPattern>  
                                <!-- china-site flavor -->  
                                <includeDescriptorPattern>conf/META-INF/autoconf/auto-config.xml</includeDescriptorPattern>  
                            </includeDescriptorPatterns>  
                               <includePackagePatterns>  
                                   <includePackagePattern>**/*.war</includePackagePattern>  
                               </includePackagePatterns>  
                        </configuration>  
                    </plugin>  
                </plugins>  
            </build>  
        </profile>  
    </profiles>

这里,又一次应用了COC的思想,插件会去扫描autoconf/auto-config.xml或者conf/META-INF/autoconf/auto-config.xml。

目前这个插件还比较鸡肋,不过基本功能都是有的,详细的介绍,可以直接参考他的官方介绍:http://repo.alibaba-inc.com/mvn/internal/snapshots/sites/maven-autoconf-plugin/config-mojo.html

常用的几个属性列举如下:

includeDescriptorPatterns:autoconfig所要扫描的描述文件的匹配路径。
userProp:指定用户实际使用配置信息的配置文件的路径,如:-DuserProp=/home/abc/properties.txt
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值