1

こんにちは、みんな!!

これがばかげた質問である場合は申し訳ありませんが、私はMavenを初めて使用し、行き詰まりに陥っています!

  1. MyTest.properties、MoreMyTest.properties を使用するプロジェクトがあります。
  2. Maven Shade プラグインを使用して、このプロジェクトを .jar ファイルにビルドしましたが、問題なく動作しています。残念ながら、shade プラグインは MyTest.properties を jar ファイル内にパッケージ化しています。

次に、jar を実行しようとすると、このエラーが発生します。

java.io.FileNotFoundException: ファイルが見つかりません: properties/MyTest.properties at file:\C:\Dev\test.jar!\properties\MyTest.properties at ...

IDE 内と、デプロイ時にコマンドラインから jar を実行することの両方で、自分のプロパティにアクセスしたいと考えています。プロパティ ファイルを、jar ファイルの場所の上の相対フォルダー ../lib/ に配置することを考えていました。

私のプログラム内では、次のようにプロパティにアクセスしたいと考えています:

File testProperties = new File(
  ClassLoader.getSystemResource("properties/MyTest.properties").getFile()
);

これをPOM.xmlに追加してみました

<transformer
    implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
  <resource>*.properties</resource>
  <file>../*properties</file>
</transformer>

(上記のコード スニペットでフォーマットが乱れて申し訳ありません!)

しかし、それは機能していません。これについて何か助けていただければ幸いです。コードは非常に大きいため、すべてのコードを投稿したわけではありませんが、私が達成しようとしていることを理解していただければ幸いです。

どうもありがとう、ポール

4

1 に答える 1

1

わかりました、解決策があります。いつも通り、投稿直後!しかし、あなたの返事をありがとう。

  <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.6</version>
            <executions>
                <execution>
                    <id>copy-resources</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>../lib</outputDirectory>
                        <resources>
                            <resource>
                                <directory>src/main/resources</directory>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
于 2014-08-28T16:10:00.050 に答える