6

META-INF/maven/${groupId}/${artifactId}Mavenがその場所で生成するpom.propertiesファイルにカスタム値を追加しようとしています

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <configuration>
            <archive>
                <manifestEntries>
                    <build>${BUILD_TAG}</build>
                </manifestEntries>
                <addMavenDescriptor>true</addMavenDescriptor>
                <pomPropertiesFile>${project.build.directory}\interface.properties</pomPropertiesFile>
            </archive>
    </configuration>
</plugin>

interface.propertiesファイルの内容は次のとおりです。

# Build Properties
buildId=746

ドキュメントを使用して、pomPropertiesFile要素に外部プロパティを指定しましたが、生成されたpom.propertiesファイルには、実行後もデフォルトのコンテンツが含まれていますmvn install

pomPropertiesFile要素の正しい使用法は何ですか?

編集

問題はorg.apache.maven.archiver.PomPropertiesUtilにあると思います。ソースsameContentsのメソッドを見ると、外部ファイルのプロパティがデフォルトと同じである場合はtrueを返し、異なる場合はfalseを返します。の結果がfalseの場合、外部ファイルの内容は無視されます。sameContents

案の定、これはすでにバグとして記録されています

4

2 に答える 2

0

https://issues.apache.org/jira/browse/MNG-4998を参照してください

Maven 3 は、現時点で利用可能なすべてのプロパティ値の pom.xml を読み取るときに、プロパティ プレースホルダーを熱心に解決します。これらのプロパティを後で変更しても、pom.xml ですでに解決されている値には影響しません。

ただし、プロパティ値が使用できない (デフォルトがない) 場合、プレースホルダーは値に置き換えられず、後でプレースホルダーとして処理できます。たとえば、ビルド中にプラグインがプロパティを生成する場合や、ビルド ステップ中にプラグインによってプレースホルダーが読み取られて処理される場合などです。

于 2016-05-13T08:36:59.320 に答える
0

src/main/resources/META-INF/${groupId}/${artifactId}/interface.properties の下にファイルを配置し、maven にフィルタリング ジョブを実行させる (フィルタリングを構成する) 必要があると思います。ファイルは target/META-INF/maven/${groupId}/${artifactId}/ の場所に自動的にコピーされます。

于 2012-04-11T12:43:49.110 に答える