1

いくつかの Maven プロジェクトを Perforce から git に移行中です。Perforce では、これらのプロジェクトはbuild.number、ビルド プロセスの一部として JVM arg として渡された Maven プロパティで構成されていました。git を使用して、git リポジトリ メタデータに基づいてプロパティを設定するjgit-buildnumber プラグインを調べています。

プラグインは素晴らしく機能しますが、Maven ライフサイクルの早い段階 (検証または初期化) で実行しても、Reactor ビルド プランが生成された後に発生します。exec-maven-pluginプロジェクトはと を使用するため、これは問題ですmaven-antrun-plugin。これらのプラグインのビルド プランは、プランの構築時にすべての Maven プロパティのスナップショットを取得しているようです。たとえば、これらのプラグインの 1 つに対する Reactor ビルド プランのデバッグ出力からのスニペットです。

[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal:          org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (RPMbuilderScript)
[DEBUG] Style:         Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <basedir default-value="${basedir}"/>
  <classpathScope default-value="runtime">${exec.classpathScope}</classpathScope>
  <commandlineArgs>product=jas_etl
                        dir=/Users/dev/project
                        team=sanctuary
                        version=${git.buildnumber}
                        artifact=/Users/dev/project/target/project-${git.buildnumber}.zip
                        </commandlineArgs>
  <executable>../parent/devops_scripts/mavenRpmBuilder.sh</executable>
  <longClasspath default-value="false">${exec.longClasspath}</longClasspath>
  <outputFile>${exec.outputFile}</outputFile>
  <project default-value="${project}"/>
  <session default-value="${session}"/>
  <skip default-value="false">true</skip>
  <sourceRoot>${sourceRoot}</sourceRoot>
  <testSourceRoot>${testSourceRoot}</testSourceRoot>
  <workingDirectory>${exec.workingdir}</workingDirectory>
</configuration>

git.buildnumberjgit-buildnumber プラグインによって初期化フェーズの一部として設定されますが、実行プラグインのビルド プランの参照に影響を与えるには遅すぎます。

ビルドプランの生成前に jgit-buildnumber プラグインを実行する方法はありますか? または、Ant および exec プラグインを構成して、ビルド プランの生成時ではなく、実行フェーズの開始時にのみプロパティ値を読み取る方法はありますか?

4

0 に答える 0