1

カスタムMavenプラグインを開発しています。カスタムプラグインのプロパティファイルを読み取ると、すべてがうまくいきますが、プラグインとして別のプロジェクトで実行すると、そのプロジェクトのプロパティファイルを取得するにはどうすればよいですか?次の理由により、常に通常どおり自分自身のリソースディレクトリを参照します。

私は持っています:

Properties allProperties = new Properties();
allProperties.load(this.getClass().getResourceAsStream("/tokens.properties"));

そして私はそれを試しました:

Properties allProperties = new Properties();
ClassLoader loader = Thread.currentThread().getContextClassLoader();
allProperties.load(loader.getResourceAsStream("/tokens.properties"));

しかし、動作しませんでした。何か案は?

PS:実行すると、プラグインのプロパティファイルから読み取られます。私のプロパティファイルは下にあります

src/main/resources

私は自分のpomsでそれを使用します:

<build>
     ...
    <resources>
        <resource>
            <directory>src/main/resources/</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
     ...
</build>

と私のプロパティファイル:

project.version = ${project.version}
4

1 に答える 1

5
Properties allProperties = new Properties();
ClassLoader loader = Thread.currentThread().getContextClassLoader();
allProperties.load(loader.getResourceAsStream("/tokens.properties"));

あなたは近かった。それは確かに正しいクラスローダーですが、間違ったパスです。先頭のスラッシュを削除します。

allProperties.load(loader.getResourceAsStream("tokens.properties"));
于 2013-02-10T02:13:31.127 に答える