我有<exec-maven-plugin>
调用外部命令(在本例中为svnversion
)。该命令位于当前用户的路径中。
但是,当插件生成单独的shell时,路径不会初始化。我不想为每个外部命令硬编码或定义变量(维护太多,特别是有Windows和* nix用户)。
我的pom.xml
包含以下内容:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>svnversion-exec</id>
<phase>process-resources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>svnversion</executable>
<arguments>
<argument><![CDATA[ >version.txt ]]></argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
目前我得到以下输出:
[INFO] [exec:exec {execution: svnversion-exec}] 'svnversion' is not recognized as an internal or external command, operable program or batch file.
[ERROR] BUILD ERROR: Result of cmd.exe /X /C "svnversion >version.txt" execution is: '1'.
谢谢!
答案 0 :(得分:0)
这很奇怪,因为正如文档中所写,executable
参数不一定是可执行文件的完整路径:
可执行文件。可以是完整路径或名称可执行文件。在后一种情况下,可执行文件必须位于PATH中才能执行。
在我的计算机上(svnversion
位于/usr/bin/
中的PATH
),您发布的配置正常工作(我使用完全相同的代码段):
$ mvn process-resources [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Building Q2821100 [INFO] task-segment: [process-resources] [INFO] ------------------------------------------------------------------------ [INFO] [resources:resources {execution: default-resources}] [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory /home/pascal/Projects/stackoverflow/Q2821100/src/main/resources [INFO] [exec:exec {execution: svnversion-exec}] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 5 seconds [INFO] Finished at: Wed May 12 21:30:35 CEST 2010 [INFO] Final Memory: 7M/87M [INFO] ------------------------------------------------------------------------ $ cat version.txt exported
也许仔细检查正在运行maven的用户的PATH
。另外,为什么你说产生了一个shell?谁产卵那壳?
答案 1 :(得分:0)
我看了this:
插件将按以下顺序搜索可执行文件:
否则按原样使用可执行文件。
所以“仅限Windows”!