2017-10-05 33 views
1

我想運行帶有額外文件(恰好是css)的Spring Boot應用程序在類路徑中。如何在類路徑上運行帶有額外文件的Spring Boot應用程序

我收到了啓動腳本與應用::

#! /bin/sh 
commandline="java -jar xxx-1.0.0.jar" 
commandline="$commandline --spring.config.location=../config/xxx.properties" 
commandline="$commandline --logging.config=../config/log4j2.xml" 
$commandline 

我天真的第一次嘗試是添加具有-cp一個文件夾,把文件放入該文件夾。然而,這是行不通的,因爲-cp和-jar不兼容(在這裏很好的解釋:Differences between "java -cp" and "java -jar"?

然後我發現了使用PropertiesLauncher + loader.path的建議,它可以被視爲在命令行上替換classpath https://docs.spring.io/spring-boot/docs/current/reference/html/executable-jar.html#executable-jar-property-launcher-features)。然而,要使用PropertiesLauncher示例建議修改POM,我不能這樣做(Spring Boot: Is it possible to use external application.properties files in arbitrary directories with a fat jar?

我可以做的是修改shell腳本。

我應該如何(如果可能的話)將額外的文件放到類路徑中而不修改Spring Boot應用程序?

回答

2

這也爲我的作品:

#! /bin/sh 
commandline="java -cp ../css:xxx-1.0.0.jar org.springframework.boot.loader.JarLauncher" 
commandline="$commandline --Spring.config.location=../config/xxx.properties" 
commandline="$commandline --logging.config=../config/log4j2.xml" 
$commandline 

在我的情況下,這看ms比使用PropertiesLauncher更簡單。

1

我發現這篇文章,它展示瞭如何使用PropertiesLauncher無需修改應用程序(不修改的pom.xml): https://mash213.wordpress.com/2017/01/05/hack-how-2-add-jars-2-springboot-classpath-with-jarlauncher/

因此,與上述,我可以添加一個額外的文件夾添加到類路徑和它確實工作:

#! /bin/sh 
commandline="java -Dloader.path=../css -cp xxx-1.0.0.jar org.springframework.boot.loader.PropertiesLauncher" 
commandline="$commandline --spring.config.location=../config/xxx.properties" 
commandline="$commandline --logging.config=../config/log4j2.xml" 
$commandline 
相關問題