Как воссоздать команду, запускаемую плагином Maven's antrun?

Я использую Maven 3.0.3 на Solaris 10. Я использую плагин antrun exec. Как мне определить оператор командной строки, который на самом деле выполняется? При выполнении моей команды (предназначенной для извлечения кода из системы контроля версий StarTeam) я получаю сообщение об ошибке "Отказано в доступе", хотя я проверил, что у моего пользователя есть соответствующие разрешения. Я хотел бы запустить ту же команду, которую Maven запускает из оболочки, чтобы я мог сравнить две команды.

Ниже приведен соответствующий раздел из моего файла 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 ответа

Используйте тег 'chmod' перед 'exec', чтобы гарантировать право на выполнение команды, как показано ниже:

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

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

Вы можете запустить Maven с -X вариант. Это даст вам больше (отладочной) информации, а также запустит ant с -debug вариант.

Другие вопросы по тегам