2017-05-14 37 views
0

基本上,Jenkins CI作業在生產集羣中運行mvn spring-boot:run ....作爲運行應用程序的唯一方式。實際上,通過這個構建步驟,我們僅通過maven運行springboot應用程序,這導致jvm行爲非常不穩定。此外,我無法配置所有可能的調整到jvm,例如,打開gc日誌記錄或更改爲G1GC等..直接使用maven與通過java運行springboot?

我只是想知道如果運行我的java springboot應用程序應該確實打包到一個胖的jar,並且運行標準的jvm標誌,而不是來自maven。

請讓我知道你的想法

回答

0

春季啓動Maven插件,以便設置jvm設置有jvmArguments

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

的第二個選擇是創建自可執行的JAR /戰爭和使用標準的方式來運行應用程序 - java -jar app.jar <jvm properties>

+0

當然。但是不運行maven只是爲了運行springboot java應用程序的開銷?我在集羣中的應用程序中運行此應用程序... – ZeroGraviti

+0

@ZeroGraviti您可以選擇創建自我可執行的jar/war,並通過標準方式'java -jar app.jar'和您的屬性作爲控制檯參數運行它。 –

+0

正是我在想什麼。感謝您的確認:) – ZeroGraviti

0

我們的團隊已運行類似於他人如何用簡單的陳述脂肪罐子java -jar ****.jar命令。但是,一旦生產完成,您可以利用容器集羣系統構建組成應用程序的許多微服務。看起來像運行maven和部署源代碼,而不是僞像似乎很危險。希望這有助於!

+0

我同意。你使用什麼樣的CI/CD管道?我們正在使用詹金斯。任何有關IAC工具或優秀的舊shell腳本的建議? (我們實際上並沒有考慮Kubernetes或Docker或Mesos等,也沒有針對產品的AWS。) – ZeroGraviti

+0

Jenkins管道似乎可以解決您在嘗試完成CI/CD時可能遇到的許多其他問題。看看https://jenkins.io/doc/book/pipeline/ –