Mavenで外部プロパティファイルを読み取る方法


127

Mavenでx.propertiesファイルを読み取る方法を知っている人はいますか?リソースフィルタリングを使用してプロパティファイルを読み取り、そこから値を設定する方法があることはわかっていますが、pom.xmlに次のような方法が必要です。

<properties file="x.properties"> 

</properties>

これについていくつかの議論がありました: Maven外部プロパティ


少数の値しかなく、ユーザーごとに異なる値が必要になる場合は、代わりにに値を入れることをsettings.xml検討してください
Raedwald

回答:


95

1
それが私が探しているものだと思います私はMavenリポジトリで1.0-SNAPSHOTを見つけることができませんでしたが、リリースがあります: mvnrepository.com/artifact/org.codehaus.mojo/… <dependency> < groupId > org.codehaus .mojo </ groupId> <artifactId> properties-maven-plugin </ artifactId> <version> 1.0-alpha-1 </ version> </ dependency>
Dougnukem 2009年


現在のバージョン:<groupId> org.codehaus.mojo </ groupId> <artifactId> properties-maven-plugin </ artifactId> <version> 1.0-alpha-2-SNAPSHOT </ version> from snapshots.repository.codehaus.org
Huluvu424242

2
Answerのリンクは、@ JesseGlickからの新しいリンクに更新されました
Jon Adams

1
Windowsでこのプラグインに問題がありました。誰かにも問題がある場合は、代わりにクアリを試してください
2013年

56

提案されたMavenプロパティプラグインを使用して、ビルドのバージョン管理に使用するbuildNumber.propertiesファイルを読み取ることができました。

  <build>    
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>properties-maven-plugin</artifactId>
        <version>1.0-alpha-1</version>
        <executions>
          <execution>
            <phase>initialize</phase>
            <goals>
              <goal>read-project-properties</goal>
            </goals>
            <configuration>
              <files>
                <file>${basedir}/../project-parent/buildNumber.properties</file>
              </files>
            </configuration>
          </execution>
        </executions>
      </plugin>
   </plugins>

9
buildNumber.propertiesファイルの内部を表示できますか?ありがとうございました!
victorio

実用的な例をありがとう。ただし、なぜエラーが発生したのですかPlugin execution not covered by lifecycle configuration: org.codehaus.mojo:properties-maven-plugin:1.0-alpha-1:read-project-properties (execution: default, phase: initialize)
WesternGun、2018

私は</ビルド>の後に<プラグイン>の下で、この<プラグイン>セクションを入力すると、通常のMavenのプラグインの前に、私はこのエラーを取得しています:Plugin 'execution' not covered by lifecycle configuration: org.codehaus.mojo:properties-maven-plugin:1.0-alpha-1:read-project-properties (execution: default, phase: initialize)
PraNuta

@BorisBrodskiはbuildNumber.propertiesファイルの内部を見せてくれませんか?一部の詳細を削除したようです。
ムスタファマフムード

@MoustafaMahmoudなぜ私なの?それは私の答えではありません:)しかし、それは「my.great.product.version = 1.0.0」のように見えるかもしれないと推測するかもしれません。
Boris Brodski、

5

同様の質問に対するこの回答では、プロパティプラグインを拡張して、プロパティファイルのリモート記述子を使用できるようにする方法について説明します。記述子は基本的に、プロパティファイルを含むjarアーティファクトです(プロパティファイルはsrc / main / resourcesに含まれています)。

記述子は拡張プロパティプラグインへの依存関係として追加されるため、プラグインのクラスパス上にあります。プラグインはプロパティファイルのクラスパスを検索し、ファイルの内容をPropertiesインスタンスに読み込み、それらのプロパティをプロジェクトの構成に適用して、他の場所で使用できるようにします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.