如何从groovy(gradle)内部设置vm参数到Tomcat?

时间:2017-01-12 09:59:51

标签: java spring tomcat groovy build.gradle

我想从gradle设置vm参数:

例如,要启动Java应用程序:

-Dspring.profiles.active=dev

我想做同样的事情但是从gradle而不是从命令行

我尝试了不同的变体,它不起作用:

System.properties['spring.profiles.active'] = "dev"
System.setProperty('spring.profiles.active',"dev")

如何设置System.properties表格Gradle?我需要在tomcat上运行spring app作为.war文件,我不能将其作为系统变量传递

我需要它,因为 https://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html

  

69.6设置活动弹簧配置文件

     

Spring Environment有一个API,但通常你会设置   System属性(spring.profiles.active)或OS环境   变量(SPRING_PROFILES_ACTIVE)。例如。用a启动你的应用程序   -D参数(记得把它放在主类或jar存档之前):

     

$ java -jar -Dspring.profiles.active = production   演示0.0.1-SNAPSHOT.jar

     

在Spring Boot中,您还可以设置活动配置文件   application.properties,例如

     

spring.profiles.active =生产

     

以这种方式设置的值将替换为System属性或环境   变量设置,但不是SpringApplicationBuilder.profiles()   方法。因此,后一个Java API可用于扩充配置文件   不改变默认值。

1 个答案:

答案 0 :(得分:0)

这有效:

bootRun {
    systemProperty 'spring.profiles.active', 'dev'
}

我在这里找到答案: https://github.com/spring-projects/spring-boot/pull/592