使用maven配置文件构建两个不同版本的特定战争并从eclipse中过滤

时间:2012-12-16 15:22:03

标签: eclipse spring maven continuous-integration cloudfoundry

我正在尝试使用 maven个人资料过滤,以便生成给定网络存档的两个不同版本战争):

  1. 第一个本地部署到localhost上的本地计算机
  2. 第二个远程部署到cloudfoundry
  3. 根据应用程序是部署到本地计算机还是cloudfoundry,有许多属性会有所不同。

    当然,困难的是我正在尝试从STS / Eclipse 完成所有这些工作,并从Eclipse部署到我的本地tomcat和cloudfoundry ......

    有人可以提供建议,提示或建议吗?

2 个答案:

答案 0 :(得分:5)

如果您使用Spring版本3.1+,那么spring bean配置xml中<beans>的“profile”属性将是最佳选择。在这里查看文档:{​​{3}}

基本上你需要指定至少2个元素。一个用于本地属性(profile="default"),另一个用于部署到CF时的属性。后者应定义为<beans profile="cloud">。在本地运行时,“cloud”中的属性将被忽略,“default”中的属性将生效。当推送到CF时,CF将检测名为“cloud”的配置文件,并且更好地注入由CF本身提供的服务的相应数据源连接信息。您也可以在该文档中找到CF指定的详细属性。

有关个人资料属性的详细信息,请参阅此处的文档:http://docs.cloudfoundry.com/frameworks/java/spring/spring.html#using-spring-profiles-to-conditionalize-cloud-foundry-configuration

答案 1 :(得分:1)

考虑生成每个工件的单个项目。因此,一个项目生成您的本地部署,一个项目生成您的cloudfoundry部署。

Overlays(http://maven.apache.org/plugins/maven-war-plugin/overlays.html)是在现有WAR文件中烘焙额外文件的官方认可方式,它提供了一个新的WAR工件。非常有用,但在开发过程中可能太慢而不舒服。