1

Imに次の問題があります。水銀ハッシュをJavaプロジェクトに統合したい。私はそれを生成ファイル(debianパッケージ)の名前に統合したいと思います。また、水銀のハッシュにアクセスできるversion.propertiesのようなファイルも必要です。Java:Maven:プロパティファイルにpom.xml情報を取得する(バージョンとして水銀ハッシュ)

私は多くの類似した質問があることを知っていますが、私はそれらを読んでいます。何とか私の問題を解決できません。

私はmercurialハッシュを取得するためにbuildnumber-maven-pluginを使用します。私はそれをバージョンに統合します。 mvn clean installを実行すると、このハッシュでdebianパッケージが生成されます。これまでのところこれが動作しています。私が行方不明です何

<version>project-${buildNumber}</version> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>buildnumber-maven-plugin</artifactId> 
      <version>1.0</version> 
      <executions> 
       <execution> 
        <phase>validate</phase> 
        <goals> 
         <goal>create</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

は、プラグインによって自動的に生成されなければならないbuildNumber.propertiesファイル、です。私はどこでもそれを見つけることができません。だから自分のプロパティファイルを書くことにしました。私はsrc/main/resourcesに作成し、私はpom.xmlにプロパティを追加しました。ここでは、スニペットは以下のとおりです。

のpom.xml

<properties> 
    <merc.version>${buildNumber}</merc.version> 
</properties> 

version.properties

version=${buildNumber} 
version2=${merc.version} 

私はCMDLから、その後mvn clean install実行します。しかし、私がlessというコマンドラインから私のversion.propertiesファイルを開くと、上記のような内容のプレーンテキストが表示されます。プロパティは実際のコンテンツに置き換えられません。私はversion=${buildNumber}などしか見ません。

また、mavenによって生成される "pom.properties"ファイルは、1ヶ月前の非常に古いバージョンを含んでいます。私はそれを更新するために何をすべきか理解していない。

いずれかが私を助けることができれば、それは素晴らしいでしょう:-)ありがとう!

答えて

2

あなたがその場合にはこの手段のフィルタであることをwan't filtering for the resourcesを有効にする必要があります:

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

あなたversion.propertiesファイルが正しくSRC /メイン/リソース/バージョンの下に配置されている場合は/それは次のようになりますビルドプロセス中にフィルタリングされ、target/class/...にコピーされ、置き換えられたはずのプレースホルダです。

+0

素晴らしい!ありがとう!私はすでにfiltering = trueを追加しましたが、私は常にtarget/classのファイルではなく間違ったファイルを見ました。愚かな私!ありがとうございました!! :-) – nano7

関連する問題