2016-10-05 4 views
0

2つのプロジェクトがあるので、Project1 & Project2としましょう。maven jarの依存関係の1つに必要な設定ファイルはどこに置くべきですか?

最初のものは、次のように設定ファイルを読み込み、うまく機能しているJavaアプリケーション(なし達人)です:

public static void init() { 
    Path path = Paths.get("config.properties"); 
    byte[] data = Files.readAllBytes(path); 
    ... 
} 

私はこのプロジェクトからproject1.jarを作成し、私のようにそれを使用していますダイナミックWebプロジェクトであるProject2の依存関係です。 この依存関係は、問題なく他の部分を使用することができるため、よく組み込まれています。

私が今取得する問題は、私がjava.nio.file.NoSuchFileExceptionを取得したときに私のProject2からinit()メソッドを呼び出そうとするときです。

私はこのconfig.propertiesファイルを取り、どこでもそれを入れてみました

(私はそれがproject1.jarに含まれるようにしたくない)私はどこかのProject2ツリーでそのconfig.propertiesファイルを配置する必要がありますので、それはだと思います私のMavenツリーでWebContentMETA-INFWEB-INFtarget、各サブディレクトリtargetsrc ...何も動作していない、私はまだ例外を取得します。

何らかの形でpom.xmlに含める必要がありますか?はいの場合、どうですか?いいえ...あれ?

+3

であなたのレポでjarファイルをインストールしている必要がありますだと思いますリソースフォルダ内のconfig.propertiesファイル。これが機能するかどうか確認してください。 –

+0

悲しいことに、私はまだ例外が発生します – Charrette

+0

私はあなたに次の[リンク](http://stackoverflow.com/questions/96247/what-is-the-best-place-to-store-home)を覗いてみることをお勧めします。 a-configuration-file-in-a-java-web-application)を使用します。 ** Project2 **はサーブレットなので、[context](http://tutorials.jenkov.com/java-servlets/servletcontext.html)の概念を理解する必要があります。 – Sandro

答えて

0

ストレートフォワード。 RITZ XAVIはどのようなことをお勧めしますか。 src/main/resourcesに追加

次にinit関数を次のように置き換えてください。

public static void init() { 
    InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("config.properties"); 
    byte[] data = IOUtils.toByteArray(in); 
    ... 
} 

あなたはMavenの依存関係として追加する方法を1として、私はあなたがのsrc /メイン/ resources` `のようなディレクトリ構造を作成し、ダンプカスタムグループとアーティファクトID

関連する問題