spring.profiles.active在命令行中无法工作。
spring.profiles.active在命令行中无法工作。
我正在使用spring-boot: 1.2.2\n这是在文档中提供的语法(当我使用命令启动时,会出现Unknown command-line option \'--spring.profiles.active\'.
的错误)\n
gradlew bootRun --spring.profiles.active=noAuthentication
\n我尝试过这个,但它不起作用\n
gradlew bootRun -Dspring.profiles.active=noAuthentication
\n我在其他地方找到这个应该起作用,但它不起作用\n
gradlew bootRun -Drun.jvmArguments="-Dspring.profiles.active=noAuthentication"
\n我将以下内容添加到application.properties中,它可以正常工作。\n
spring.profiles.active=noAuthentication
\n如何从命令行传递此参数?
spring.profiles.active is not working from the command line的问题出现的原因是在运行时,无法通过命令行参数来设置spring.profiles.active属性。解决方法是通过gradle的项目配置来设置这个属性。
具体的解决方法如下:
1. 在项目的build.gradle文件中添加以下代码:
project.gradle.projectsEvaluated { applicationDefaultJvmArgs = ["-Dspring.profiles.active=${project.gradle.startParameter.systemPropertiesArgs['spring.profiles.active']}"] }
这段代码的作用是在项目的构建过程中,设置应用程序的默认JVM参数,其中的${project.gradle.startParameter.systemPropertiesArgs['spring.profiles.active']}部分会获取命令行参数中名为spring.profiles.active的值,并将其赋值给spring.profiles.active属性。
2. 在命令行中运行以下命令:
gradlew bootRun -Dspring.profiles.active=prod
这个命令会启动应用程序,并通过-Dspring.profiles.active=prod参数设置spring.profiles.active属性的值为prod。
通过以上步骤,就可以解决spring.profiles.active is not working from the command line的问题。这样就可以在命令行中通过-Dspring.profiles.active参数来设置spring.profiles.active属性的值了。