如何创建Maven antrun插件运行的命令?

时间:2011-05-23 20:48:06

标签: maven maven-3 maven-antrun-plugin

我在Solaris 10上使用Maven 3.0.3。我使用的是antrun exec插件。我如何找出实际运行的命令行语句?当我运行我的命令(旨在从StarTeam版本控制系统检出代码)时,我收到了一个权限被拒绝的错误,虽然我已经验证我的用户有正确的权限。我想运行Maven从shell运行的相同命令,以便我可以比较这两个命令。

以下是我的pom.xml文件中的相关部分......

                    <plugin>
                            <artifactId>maven-antrun-plugin</artifactId>
                            <executions>
                                    <execution>
                                            <phase>verify</phase>
                                            <configuration>

                                                    <tasks> 

                                                            <!-- Backup CIRQUE_COMPLETE and freeze the backup label -->
                                                            <exec failonerror="true" executable="stcmd" dir="/opt/StarTeamCP_2009/bin/">
                                                                    <arg value="label" />
                                                                    <arg value="-p" />
                                                                    <arg value="user:@mydomain.com:49201/myco/myco/Technology/nna/mycoUSA/cirquedusoleil" />
                                                                    <arg value="-vl" />
                                                                    <arg value="CIRQUE_${env}_COMPLETE" />
                                                                    <arg value="-nl" />
                                                                    <arg value="CIRQUE_${env}_COMPLETE_`date +&quot;%Y%m%d-%T&quot;`" />
                                                                    <arg value="-f" />
                                                                    <arg value="-r" />
                                                            </exec>

                                                            <!-- Slide CIRQUE_COMPLETE label up to build label -->
                                                            <exec failonerror="true" executable="stcmd" dir="/opt/StarTeamCP_2009/bin/">
                                                                    <arg value="apply-label" />
                                                                    <arg value="-p" />
                                                                    <arg value="user:@mydomain.com:49201/myco/myco/Technology/nna/mycoUSA/cirquedusoleil" />
                                                                    <arg value="-vl" />
                                                                    <arg value="${env.BUILD_ID}" />
                                                                    <arg value="-lbl" />
                                                                    <arg value="CIRQUE_${env}_COMPLETE" />
                                                                    <arg value="-is" />
                                                                    <arg value="*" />
                                                            </exec>

                                                    </tasks>
                                            </configuration>
                                            <goals>
                                                    <goal>run</goal>
                                            </goals>
                                    </execution>
                            </executions>
                    </plugin>

2 个答案:

答案 0 :(得分:0)

您可以使用-X选项运行maven。这将为您提供更多(调试)信息,它还将使用-debug选项运行ant。

答案 1 :(得分:0)

在'exec'之前使用'chmod'标签来保证执行命令的权限,如下:

<chmod file="/opt/StarTeamCP_2009/bin/stcmd" perm="a+x"/>

<exec failonerror="true" executable="stcmd" dir="/opt/StarTeamCP_2009/bin/">
  ...
</exec>