在STS tc Server上未激活弹簧配置文件

时间:2014-09-05 10:14:53

标签: spring maven spring-tool-suite tcserver spring-profiles

我有一个带有Spring配置文件的项目

在我的web.xml中,我有

<context-param>
    <param-name>spring.profiles.default</param-name>
    <param-value>dev</param-value>
</context-param>

设置默认弹簧配置文件。

我使用

构建maven项目
clean install -Dspring.profiles.active="prod"

然后,我选择Run As - &gt;选项。在服务器上运行以将maven项目部署到tc Server。

但是,活动配置文件仍然是开发。

在tc服务器上激活弹簧配置文件的正确方法是什么

2 个答案:

答案 0 :(得分:1)

配置Tomcat

  • 在web.xml中定义上下文参数 - 打破“所有环境的一个包”语句。我不建议
  • 定义系统属性-Dspring.profiles.active = your-active-profile

我认为定义系统属性是更好的方法。那么如何为Tomcat定义系统属性呢?在互联网上我可以找到许多建议,如“修改catalina.sh”,因为你找不到任何配置文件来做这样的事情。修改catalina.sh是一个肮脏的不可维护的解决方案。有一种更好的方法可以做到这一点。

只需在Tomcat的bin目录中创建文件setenv.sh,其内容为:

JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active="prod"

并在运行catalina.sh启动或运行期间自动加载。

答案 1 :(得分:1)

如果您使用STS及其附带的tc Server运行应用程序,则可以将系统属性定义放入tc Server的启动配置中。启动tc Server一次后,您可以通过&#34; Run Configurations ...&#34;修改lauch配置,为Pivotal tc Server选择一个,转到VM参数并添加-Dspring.profiles。 active = prod setting。

由于这是一个运行时选项,因此在通过Maven(您尝试的干净安装方式)构建应用程序时,它不会产生任何影响。