我正在尝试添加buildnumber
maven 插件以包含hgchangeset
来自 mercurial 的插件。在终端中运行时,这对我很有用(我在 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 不能。
有什么办法可以告诉 Mavenhg
在那个位置使用吗?我不在乎它是否必须被硬编码,因为我们所有计算机上的二进制位置都是相同的。
提前致谢
echo $PATH /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin