2017-10-05 6 views
1

クラスパス上に余分なファイル(CSSであることがあります)を付けてSpringブートアプリケーションを実行したいと思います。クラスパス上の余分なファイルを使ってSpringブートアプリケーションを実行する方法

私は、アプリケーションを起動スクリプトを受け取った::

#! /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の使用に関する提案が見つかりました。 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?

私ができることは、シェルスクリプトを変更することです。

Springブートアプリケーションを変更せずに、余分なファイルをクラスパスに置くにはどうすればよいですか?

答えて

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

私は(のpom.xmlを変更せずに)アプリケーションを変更せずにPropertiesLauncherを使用する方法を示し、この記事を見つけた: は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 
関連する問題