我想知道是否可以将spring的附加参数(例如-Dspring.profiles.active=prod
)添加到spring引导应用程序,以防将其作为service运行。
我检查了spring-boot-maven-plugin
自动生成的脚本:
command="$javaexe -jar -Dsun.misc.URLClassPath.disableJarChecking=true $jarfile $@"
所以也许可以通过maven插件的选项来完成,但除了JVM参数之外找不到任何不太有用的...
答案 0 :(得分:5)
我无法找到任何解决方案,包括我所描述的那个 - 似乎插件的其他参数也不起作用。
最后,我使用systemd service approach解决了这个问题。
看起来很完美:
[Unit]
Description=Some app
After=syslog.target
[Service]
ExecStart=java -Dspring.profiles.active=production -jar /home/apps/monitoring-app-1.0.0.jar
[Install]
WantedBy=multi-user.target
答案 1 :(得分:4)
例如,您可以使用外部配置文件。
根据文档,如果您在执行的jar旁边的application.properties
目录中提供了./config
文件,则可以通过该属性文件设置活动的配置文件。
只需在spring.profiles.active=myprofile
./config/application.properties
即可
http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
答案 2 :(得分:2)
在与可执行jar相同名称的同一目录中创建.conf文件,例如
server-1.0-SNAPSHOT.jar server-1.0-SNAPSHOT.conf
JAVA_OPTS="-Xmx500m \
-Dspring.profiles.active=myprofile"