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
で実行する場合は、春のブートプラグインによって生成されたJVMのクラスパスの最初の2つのエントリは、(1)アプリケーションのJARおよび(2あることがわかります)空のクラスディレクトリ。たとえば、次のように
[DEBUG] Classpath for forked process: <full_path_removed>/tmp/lib/your-application.jar.original:/tmp:
注:
- あなたはMETA-INF/MANIFEST.MFにメインクラスの命令が含まれていないオリジナルのJARを使用しているので、あなたが
mainClass
を供給する必要があります
- 元のJARは、アプリケーションのメインクラスが元の場所に含まれているため(SpringブートパッケージのJARがそれを再配置するため)、SpringブートパッケージのJARではなく、元のJARを参照する必要があります。