使用maven和直接通过java运行springboot?

使用maven和直接通过java运行springboot?,maven,spring-boot,jvm,Maven,Spring Boot,Jvm,本质上,Jenkins CI作业在productions集群中运行mvn spring boot:run…,作为运行应用程序的唯一方式。实际上,在这个构建步骤中,我们只通过maven运行springboot应用程序,这导致了非常不稳定的jvm行为。此外,我无法为jvm配置所有可能的调整,例如,打开gc日志记录或更改为G1GC等。。等等 我只是想知道运行我的JavaSpringBoot应用程序是否真的应该打包到一个胖jar中,并使用标准jvm标志运行,而不是从maven运行 请告诉我您的想法Spr

本质上,Jenkins CI作业在productions集群中运行
mvn spring boot:run…
,作为运行应用程序的唯一方式。实际上,在这个构建步骤中,我们只通过maven运行springboot应用程序,这导致了非常不稳定的jvm行为。此外,我无法为jvm配置所有可能的调整,例如,打开gc日志记录或更改为G1GC等。。等等

我只是想知道运行我的JavaSpringBoot应用程序是否真的应该打包到一个胖jar中,并使用标准jvm标志运行,而不是从maven运行


请告诉我您的想法

Spring boot maven插件具有
jvm参数
,以便设置
jvm
设置

......
<configuration>
    <jvmArguments>-Xdebug</jvmArguments>
</configuration>
.......
。。。。。。
-Xdebug
.......

第二种选择是创建一个可自执行的jar/war,并使用标准方式运行app-
java-jar app.jar

我们的团队一直在运行胖jar,类似于其他人使用简单的
java-jar****.jar
命令所述。然而,一旦投入生产,您就可以利用容器集群系统来构建构成应用程序的许多微服务。似乎运行maven并部署源代码,而不是工件似乎很危险。希望这有帮助

当然。但是运行maven仅仅是为了运行springboot java应用程序不是一种开销吗?我正在集群中运行这个应用程序…@ZeroGraviti您可以选择创建一个自执行jar/war,并通过标准方式
java-jar app.jar
和您的属性作为控制台参数来运行它。这正是我所想的。谢谢你的确认:)我同意。您使用哪种CI/CD管道?我们用的是詹金斯。关于IAC工具或好的旧shell脚本有什么建议吗?(我们真的没有考虑Kubernetes、Docker或Mesos等,也没有针对prod的AWS)Jenkins Pipeline似乎解决了您在尝试完成CI/CD时可能遇到的许多其他问题。看看