いくつかの設定ファイルに依存するコマンドラインツールを構築しています。mavenプロジェクトでconfigファイルの場所を選択するにはどうすればいいですか
開発時には、これらのファイルをsrc/main/resources
の下に置き、getClass().getResourceAsStream("/config-file-name")
でアクセスします。これはうまくいきます。
すべての依存関係を持つjarをビルドするには、maven-assembly-pluginを選択します。
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.myproject.Scheduler</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-my-jar-with-dependencies</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
設定ファイルはすべてjarでラップされていますが、それらを区切りたいと思います。
ので、これを行った後、私は、次の設定、
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>conf.properties</include>
</includes>
<filtering>true</filtering>
<excludes>
<exclude></exclude>
</excludes>
<targetPath>..</targetPath>
</resource>
</resources>
を追加し、設定ファイルがjarファイルに包まれたjarファイルの代わりに側面に沿っています。
しかし、私のコードでファイルにアクセスすることはできません。
コードでファイルにアクセスする方法を変更する必要がありますか?
また、これらのファイルをsrc/main/resources/
に入れないでください。
誰かが知っていれば、助けてください。
ありがとうございました。
更新:最後に、私の代わりに、私はデフォルトでjarファイルと同じパスにファイルパスを設定するEclipseは文句を除いて、すべてがうまく動作しますが、Mavenのリソースファイルを使用してあきらめます。
configファイルをjarファイルから移動したいので、target/classesフォルダに入れたくないので、<targetPath>..</targetPath>
を使ってconfigureファイルをjarファイルと同じディレクトリに移動します。
Eclipseプロジェクトの設定を再生成すると、Eclipseは出力フォルダ "project/target/test-classes"を出力フォルダ "project/target"内にネストできません。
誰か助けてください?
クラスパスに設定ファイルの場所がありますか? 'getClass()。getResourceAsStream("/config-file-name ")'はクラスパスの場所を使ってリソースを検索します。 –
はい、それは使用しますが、それはmavenプロジェクトのリソースファイルにアクセスする通常の方法です。私は私の設定ファイルをsrc/main/resourcesの代わりに他の場所に置くことができると思います。私は実行中のjarファイルと同じディレクトリを好むので、コード内でjarパスを実行する方法を探しています。 –
'System.getProperty(" user.dir ")'はコード内のパスを返します。 [System.getProperties()](http://docs.oracle.com/javase/7/docs/api/java/lang/System.html#getProperties%28%29)および[System.getProperty(String key)]を参照してください。 ](http://docs.oracle.com/javase/7/docs/api/java/lang/System.html#getProperty%28java.lang.String%29)。 – FrVaBe