![](/img/trans.png)
[英]Cloud Foundry : How to deploy spring boot app with an additional JVM command
[英]Spring boot additional Crash Command
根據Spring啟動文檔 ,使用基於Crash的遠程Shell時可以定義其他命令。
這些命令的默認位置是classpath *:/ commands / ,classpath *:/ crash / commands /
可以使用屬性來覆蓋默認位置,但是在提供的示例中,custom命令位於資源中。
我認為,自定義命令(至少是Java命令)不應位於資源中,而應位於src / main / java中。
在資源中定義自定義路徑時,它工作正常,但是如何在src / main / java中定義自定義路徑? 暫時找不到方法!
如果它們在src/main/java
,它們將自動編譯,這不是您所需要的。 我的解決方案是將該目錄模擬為資源文件夾,簡而言之就是:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<excludes>
<exclude>crash/commands/*</exclude>
</excludes>
</configuration>
</plugin>
<resource>
<directory>src/main/java/crash/commands</directory>
<targetPath>crash/commands</targetPath>
<filtering>false</filtering>
</resource>
次要更新和免責聲明:
您可能已經知道,有兩個閉包是在登錄/注銷時執行的。 至少在v1.3.1中(這是我從spring-boot盲目繼承的),它將選擇在類路徑中找到的第一個login.groovy
。 我項目的工件與所有其他依賴項一起打包在RPM中。 由於它的名稱以r
開頭,所以它是在crash.shell-1.3.1.jar
之后crash.shell-1.3.1.jar
,這是默認值所在的位置,因此我不得不做以下小技巧,使它能夠使用我自己的腳本而不是默認腳本:
<!-- hack to make CRaSH pick up login.groovy from our jar instead of the default one -->
<finalName>0_${project.artifactId}-${project.version}</finalName>
您可以嘗試將命令放在src/main/resources/commands/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.