我们的 Spring 3.1.3 MVC 项目(使用 Maven 构建)servlet-context.xml
充满了 bean 和 bean 参数,每次我们进行部署时都需要使用生产值进行更新。有时负责进行生产构建的开发人员无法更新这些值,如果有一种方法可以为生产进行自动化构建(目前我们只有 CI 的自动化构建,这些值取决于开发人员最后推送到的内容)中央代码存储库,因此我们无法通过单元测试获得 100% 的代码覆盖率)。
这是我们的 servlet 上下文中 dev 与 prod 值的一个示例:
<beans:bean id="projectApp" class="com.project.app">
<beans:property name="config" ref="config"/>
</beans:bean>
<beans:bean id="config" class="com.project.Config">
<!-- Dev -->
<beans:property name="firstServiceUrl" value="http://localhost:8010/"/>
<beans:property name="secondServiceUrl" value="http://localhost:8020/"/>
<beans:property name="database" value="localhost"/>
<!-- QA -->
<!-- <beans:property name="firstServiceUrl" value="https://qa.services.url/first/"/> -->
<!-- <beans:property name="secondServiceUrl" value="https://qa.services.url/second/"/> -->
<!-- <beans:property name="database" value="192.168.5.5"/> -->
<!-- Production -->
<!-- <beans:property name="firstServiceUrl" value="https://prod.services.url/first/"/> -->
<!-- <beans:property name="secondServiceUrl" value="https://prod.services.url/second/"/> -->
<!-- <beans:property name="database" value="192.168.5.5"/> -->
</beans:bean>
有没有一种方法可以轻松快速地在值之间切换?我们是否可以有一个标志告诉 Spring 或 Maven 我们正在进行生产构建以使其使用生产值?有没有办法.war
使用 Maven 导出目标文件名中的构建类型,以获得类似project-1.0.0-dev.war
and的东西project-1.0.0-production.war
?