2017-05-16 10 views
3

内のコンファレンスファイルを含める:Sbtの組み立て私はJARファイルを作成する際に、SBTアセンブリプラグインを使用していると私は、次のフォルダ構造を持つJAR

src 
-main 
    -scala 
    -resources 
    -application.conf 

、私は

sbt clean assembly 
を行うとき

生成されたJarファイルには、application.confファイルが含まれています。

(ジャーの内容)最終ジャー内のリソースフォルダ内application.confないinludedのではなく、以下に示すように、それはトップレベルにあるのはなぜ

  1. :私は2つの質問があります

    -rw-r-r_1ジョースタッフ272B 5月16日21:03 application.conf drwxr-xr-x 3ジョースタッフ102B 5月16 21:03 com/ -rw-r - r-- 1 joe staff 187B 3月4日2016 library.properties drwxr-xr-x 3 joe staff 102B 5月16日21:03タイプセーフ/

  2. このapplication.cをロードするにはどうすればよいですかSystem.propertyを設定してonfをオンにしますか? 。

    するSystem.setProperty( "config.file"、 "application.default.conf")

:たとえば、私は次のようにシステムプロパティを設定することにより、application.confをロードできるようにしたいです

これで私は外部から(jarファイルを実行している間)どの設定ファイルを使用するかを制御することができました。私はこれを試したとき、私はNulPointerExceptionました:ここ

val someConfigFile = Option(System.getProperty("config.file")) 
ConfigFactory.parseURL(getClass.getResource(someConfigFile.get)) // NullPointerException happens here... 

答えて

0

を私はjarファイル内の設定ファイルは、私が外部から指定した内容に基づいてロードすることができることを行うために必要なものです!

val is = new InputStreamReader(getClass.getResourceAsStream(s"/$cfgFile")) 
    ConfigFactory.parseReader(is).resolve() 
0

あなたの最初の質問への答えは、リソースフォルダがsrcフォルダとその内容がコピーされて、いないフォルダ自体のようなものであるということです。

関連する問題