classes
參數不是可選的(它通常是使用標準Maven項目結構推斷的),但是您可以爲其提供一個空目錄,然後使用參數folders
包含先前打包的JAR。這裏有一個例子
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.this.that.YourApplication</mainClass>
<!-- any directory will do as long as (a) it exists and (b) it does not contain classes -->
<classesDirectory>/tmp/</classesDirectory>
<folders>
<folder>
<!-- the address, relative to the plugin's workingDirectory, of the 'original' application JAR -->
tmp/lib/your-application.jar.original
</folder>
</folders>
</configuration>
</plugin>
有了這個配置,如果你-X
運行,你會看到,前兩個項目的類路徑中由Spring啓動插件催生了JVM是:(1)你的應用程序JAR和(2 )空的類目錄。例如:
[DEBUG] Classpath for forked process: <full_path_removed>/tmp/lib/your-application.jar.original:/tmp:
注:
- 你需要,因爲你使用的是原來的JAR不包括在META-INF/MANIFEST.MF主類指令提供
mainClass
- 您需要引用「原始」JAR而不是Spring Boot打包的JAR,因爲原始JAR是包含應用程序的主類在其原始位置(Spring Boot打包的JAR重定位它)的JAR。