from mercurialbuildnumber
を含めるためにmavenプラグインを追加しようとしています。hgchangeset
これは、ターミナルで実行している場合にうまく機能します (私は Mac OSX を使用しています)。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
<goal>hgchangeset</goal> // The specific goal I'm interested in
<goal>create-timestamp</goal>
</goals>
</execution>
</executions>
<configuration>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
<revisionOnScmFailure>true</revisionOnScmFailure>
<!-- format of the property 'buildNumber' -->
<format>{0,date,MMdd-HHmm}</format>
<items>
<item>timestamp</item>
</items>
</configuration>
</plugin>
</plugins>
ただし、Eclipse と Jenkins で実行すると、次のエラーが発生します。
[INFO] EXECUTING: /bin/sh -c cd /Users/Shared/Jenkins/Home/jobs/proj/workspace && hg id -i
[ERROR]
EXECUTION FAILED
Execution of cmd : id failed with exit code: 127.
Working directory was:
/Users/Shared/Jenkins/Home/jobs/proj/workspace
Your Hg installation seems to be valid and complete.
Hg version: NA (OK)
そのサーバーにユーザー「jenkins」としてログインすると、実行できます。バイナリが自分のものであり、コンソールで認識されるためhg id -i
、問題なく正しい出力が表示されます。hg
$PATH
同様に、Eclipse でも同じ出力が得られます。これは、ターミナルでは maven ビルドがhg
バイナリを表示できる/usr/local/bin
が、Eclipse と Jenkins が表示できないためだと思います。
hg
その場所でMavenに使用するように指示する方法はありますか? バイナリの場所はすべてのコンピューターで同じであるため、ハードコードする必要があるかどうかは気にしません。
前もって感謝します
echo $PATH /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin