公司里使用antx的autoconfig进行项目配置文件的自动配置。把项目中的配置项提取出来,通过antx或maven进行打包时对项目指定资源文件中的使用${*}表达式表达的值替换成实际值。而这些实际值,在开发环境上、测试环境以及生产环境上都是不同的,这些值一般放在用户目录下的antx.properties中,在打包过程中,autoconfig插件会去这个文件中读取并将其写入到目标文件中,打包到jar或war等包中。所以不同环境下只需要自己维护用户目录下的这个文件就可以实现项目在不同环境下的可配置性,非常实用。
现在要在学校里做一个项目,没有autoconfig插件,想找一个替代方法。结果发现maven的resource插件的filter功能可以做到类似的功能,虽然没有autoconfig插件强大,不能使用默认值、第一次打包会自动生成类似antx.properties这样的文件,但基本用用还是可以的。
下面是pom.xml的配置方法:
当然这里只是对资源目录下的.properties文件进行替换,实际情况下可以根据需要进行配置。更深入的用法可以参数maven的resource插件的官方文档
现在要在学校里做一个项目,没有autoconfig插件,想找一个替代方法。结果发现maven的resource插件的filter功能可以做到类似的功能,虽然没有autoconfig插件强大,不能使用默认值、第一次打包会自动生成类似antx.properties这样的文件,但基本用用还是可以的。
下面是pom.xml的配置方法:
<build>
<filters>
<filter>${user.home}/auto-config.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<excludes>
<exclude>**/*.properties</exclude>
</excludes>
</resource>
</resources>
</build>
当然这里只是对资源目录下的.properties文件进行替换,实际情况下可以根据需要进行配置。更深入的用法可以参数maven的resource插件的官方文档