mvn打包替换jar包中xml的占位符

前端之家收集整理的这篇文章主要介绍了mvn打包替换jar包中xml的占位符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

由于某种需求,我们需要依赖另一个应用的jar包以及其中某几个xml的配置文件,恰好引用的这几个xml文件中,用到的占位符。在aone以及本工程里面的antx.properties文件中已经完成了配置,但是在正式maven打包的时候,还是无法替换这些占位符。

怎样才能让这个占位符被成功替换呢?

maven打包原理

后续补充

解决方

  • 将引用的xml需要用到的占位符整理放在一个单独的properties的配置文件里面,命名为XX.properties,文件里面是需要替换的占位符,形如:
  1. ofc.kvstore.server=${ofc.kvstore.server}
  2. ofc.kvstore.port=${ofc.kvstore.port}
  • 在引用jar包xml文件的本工程的xml配置文件的前面加上一段配置,强制使用我们新建的XX.properties文件中的占位符替换本文件加载的所有xml(1.xml,2.xml,3.xml)里面的占位符,例如:
  1. <bean @H_403_41@class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  2. <property @H_403_41@name="locations">
  3. <list>
  4. <value>classpath:bean/XXX.properties</value>
  5. </list>
  6. </property>
  7. </bean>
  8. <import @H_403_41@resource="classpath:bean/1.xml"/>
  9. <import @H_403_41@resource="classpath:bean/2.xml"/>
  10. <import @H_403_41@resource="classpath:bean/3.xml"/>
  • 配置主pom的resource,形如:
  1. <resources>
  2. <resource>
  3. <directory>src/main/java</directory>
  4. <filtering>true</filtering>
  5. <includes>
  6. <include>**/*.xml</include>
  7. <include>**/*.properties</include>
  8. </includes>
  9. </resource>
  10. <resource>
  11. <directory>src/main/resources</directory>
  12. <filtering>true</filtering>
  13. <includes>
  14. <include>**/*.*</include>
  15. <include>*.*</include>
  16. </includes>
  17. </resource>
  18. </resources>

猜你在找的XML相关文章