我试过了:
mvn -Dspring.profiles.active=dev spring-boot:run
但它不会影响我的默认配置。我用谷歌搜索了一下,发现:
mvn -DargLine="-Dspring.profiles.active=dev" spring-boot:run
但如果也失败了。
当我跑步时:
mvn package
然后:
java -Dspring.profiles.active=test -jar target/app-1.0.0.jar
它按预期工作(配置文件已更改)但无法从资源目录(FileNotFound异常)中找到以这种方式加载的文件:
new File(getClass().getClassLoader().getResource("data.yml").getFile())
使用maven运行应用程序时,此文件没有问题。
有什么建议吗?
答案 0 :(得分:8)
尝试使用以下命令运行您的应用程序:
mvn spring-boot:run -Drun.jvmArguments="-Dspring.profiles.active=dev"
我不知道您使用的是哪个版本,但也请检查此issue
答案 1 :(得分:0)
对于当前版本(> = 2.0.0.RELEASE),参数为 -D spring-boot .run.jvmArguments
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
也可以这样做:
mvn spring-boot:run -Dspring-boot.run.profiles=dev
答案 2 :(得分:0)
我也尝试了很多方法。但最后,对我有用的是将它们设置在 pom.xml 中,如 documentation 中所述。
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.2.2.RELEASE</version>
<configuration>
<environmentVariables>
<ENV1>5000</ENV1>
<ENV2>Some Text</ENV2>
<ENV3/>
<ENV4></ENV4>
</environmentVariables>
</configuration>
...
</plugin>
...
</plugins>
...
</build>
...
</project>