2016-12-08 4 views
1

設定ファイルがクラスパス上にないmaven/springアプリケーションを引き継ぎます。つまり、アプリケーションがデプロイされたときの設定を容易にするために、jarファイルの隣にあるmaven-assembly-pluginによってconfigフォルダがコピーされます。実行時にクラスパスから設定ファイルを参照する方法(IDEで)

私の問題は、私は私のIDE(IntelliJの)の中から、このアプリを実行するために、これらの設定ファイルを必要とする、そしてもちろん、春はアセンブリは、「アプリケーション・PROD」または「どちらかを取る

Could not load properties; nested exception is java.io.FileNotFoundException: class path resource [application.properties] cannot be opened because it does not exist 

に不平を言っているということですパッケージ化時に使用されたMavenプロファイルに応じて、 "application-test" .propertiesを作成し、/ configフォルダに "application.properties"としてコピーします。

私の質問は: 私は(理想的にはMavenのプロファイルに応じ)クラスパスで利用可能なこの「application.properties」ファイルを持っているために何をすべきかを、プロジェクトをいじりなしで、IntelliJのでアプリケーションを実行している場合構造?

私は、ランチャーのパラメータとしてプロパティファイルを与えることが解決策になると思いますが、どうすればよいかわかりません。だからここ

は単純化されたプロジェクト構造は次のとおりです。

|-- src/ 
| |-- main/ 
| | |-- assembly/ 
| | | |-- bin.xml 
| | 
| | |-- config/ 
| | | |-- images/ 
| | | |-- application-prod.properties 
| | | |-- application-test.properties 
| | 
| | |-- java/... 
| | | |-- gui/ 
| | | | |-- Application.java 
| | 
| | |-- resources/ 
| | | |-- context/ 
| | | | |-- context.xml 
| | 
| | | |-- fxml/ 
| | | | |-- welcome.fxml 
| | 
| | | |-- gui.properties 
| | 
|-- pom.xml 

感謝します。

+0

あなたはスプリングブーツを使用していますか? – kuhajeyan

+0

このhttps://maven.apache.org/shared/maven-archiver/examples/classpath.htmlを参照してください。 –

答えて

0

マルチモジュールの依存関係がないこの単純な状況では、このトリックを行うことができます。 IntelliJプロジェクト内の任意のディレクトリを右クリックし、「ディレクトリをマークする」を選択し、「ソースルート」(またはリソースルートも同様)を選択します。ディレクトリフォルダの色が黄色から青色に変わります(またはリソースアイコンが表示されます)。 IntelliJはこれらすべてのディレクトリがCLASSPATHにあることを確認します。

IDEAのCP varに明示的に値を追加しないように注意してください。クラスパスは、モジュールのモジュール依存関係で構成されます。

関連する問題