1

マニフェスト ファイルを作成するときに、バージョン番号を分割してそのコンポーネントの部分にアクセスする必要があるプロジェクトがあります。いくつか検索した後、build-helper-maven-plugin を見つけ、問題が解決したと判断しました。プラグインをマスター POM に追加しました。以下に示します。

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.7</version>
    <executions>
      <execution>
        <phase>validate</phase>
        <id>parse-version</id>
        <goals>
          <goal>parse-version</goal>
        </goals>
        <configuration>
            <propertyPrefix>parsedVersion</propertyPrefix>
        </configuration>
      </execution>
    </executions>
  </plugin>

この時点でのプロジェクトのバージョンは 3.0.0-SNAPSHOT です。すべての部分を確認したかったので (ただし、最終バージョンではすべてを使用しない可能性があります)、これらの行をマニフェスト ファイルに追加しました。

<value name="majorVersion">${parsedVersion.majorVersion}</value>

<value name="minorVersion">{$parsedVersion.minorVersion}</value>

<value name="incrementalVersion">${parsedVersion.incrementalVersion}</value>

<value name="versionQualifier">${parsedVersion.qualifier}</value>

<value name="parsedBuildNumber">${parsedVersion.buildNumber}</value>

ビルド後、これを取得します。

<value name="majorVersion">0</value>

<value name="minorVersion">{$parsedVersion.minorVersion}</value>

<value name="incrementalVersion">0</value>

<value name="versionQualifier">3.00.0-SNAPSHOT</value>

<value name="parsedBuildNumber">0</value>

値タグは実際には XML タグであり、マニフェスト ファイルに終了値タグがあります。表示を台無しにしていたので、それらを削除する必要がありました。

したがって、増分バージョンは正しいように見えますが、メジャー バージョンが正しくないこと、マイナー バージョンが見つからないこと、修飾子が単なる SNAPSHOT 部分ではなくバージョン番号全体として返されることを考えると、私はそれほど自信がありません私は期待していた。Maven がビルド番号と見なすものがないため、ゼロのビルド番号が正しい場所がわかります。

バージョン番号が解析されていないように見える理由について何か考えはありますか? このプラグインを正しく実装していませんか?

ありがとうスティーブ

4

1 に答える 1

5

{$parsedVersion.minorVersion}に変更${parsedVersion.minorVersion}


プロパティの値を調べるのはいつですか? 例のフェーズの後に実行していることを確認するvalidateか、同じフェーズで実行するbuild-helper-maven-plugin場合は、プロパティ値の検査に使用しているプラ​​グインの前に実行するようにしてください。私がこれを持っている場合:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.1</version>
            <executions>
                <execution>
                    <phase>validate</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <tasks>
                            <echo>Major: ${parsedVersion.majorVersion}</echo>
                            <echo>Minor: ${parsedVersion.minorVersion}</echo>
                            <echo>Incremental: ${parsedVersion.incrementalVersion}</echo>
                            <echo>Qualifier: ${parsedVersion.qualifier}</echo>
                            <echo>BuildNumber: ${parsedVersion.buildNumber}</echo>
                        </tasks>
                    </configuration>
                </execution>
            </executions>
        </plugin>

の後、build-helper-maven-pluginの出力にこれが表示されますmvn validate

[INFO] --- build-helper-maven-plugin:1.7:parse-version (parse-version) @ so-example ---
[INFO] 
[INFO] --- maven-antrun-plugin:1.1:run (default) @ so-example ---
[INFO] Executing tasks
     [echo] Major: 1
     [echo] Minor: 0
     [echo] Incremental: 0
     [echo] Qualifier: SNAPSHOT
     [echo] BuildNumber: 0

anew@buddha:~/dev/so-example$ grep "<version>" pom.xml | head -1
    <version>1.0.0-SNAPSHOT</version>
于 2013-02-15T16:44:24.270 に答える