我有弹簧配置文件配置,如下所示
<beans profile="dev">
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${db.driverClassName}" />
<property name="jdbcUrl" value="dfgdfg" />
<property name="user" value="${db.username}" />
<property name="password" value="${db.password}" />
</bean>
</beans>
<beans profile="prod">
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/Test"/>
</beans>
我试图通过VM参数-Dspring.profiles.active="dev"
使其中一个处于活动状态。这适用于Tomcat,托管模式下的context-param
路由也可以通过gwt-maven-plugin工作,但我无法让VM参数工作。我尝试mvn -Dspring.profiles.active="dev" gwt:run
也试图通过运行配置中JRE选项卡下的VM参数以及目标-Dspring.profiles.active="dev"
传递gwt:run
。我还尝试了环境标签,甚至-Dspring.profiles.active=dev
,但NoSuchBeanDefinitionException
并没有让步。这是因为嵌入式服务器的功能有限吗?
答案 0 :(得分:20)
不,简单地说gwt:maven插件有点奇怪,并且它不会将系统属性传递给已启动的JVM实例,而传递参数的唯一方法是在插件配置中将其放入<extraJvmArgs>
中。在你的情况下,你必须添加以下gwt插件的配置标签:
<extraJvmArgs>-Dspring.profiles.active=dev</extraJvmArgs>
上帝知道为什么这只有这种方式,我希望还有其他正常的方法。