いくつかの構成ファイルに依存するコマンド ライン ツールを構築しています。
開発時には、これらのファイルを の下に置き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/
か?
誰かが知っているなら、助けてください。
ありがとう。
更新:最後に、maven リソース ファイルの使用を断念しました。代わりに、ファイル パスをデフォルトで jar と同じパスに設定しました。Eclipse が文句を言う以外はすべて正常に動作します。
構成ファイルをjarから移動したいので、それをtarget/classesフォルダーに置きたくないので<targetPath>..</targetPath>
、構成ファイルをjarファイルと同じディレクトリに移動するために使用します。
Eclipse プロジェクト設定を再生成すると、Eclipse は次のように言います: 出力フォルダー "project/target" 内に出力フォルダー "project/target/test-classes" をネストできません。
誰か助けて?