Сбой сборки Ant, но всегда выполнение цели в Jenkins

#ant #build #path #build-automation

#ant #сборка #путь #сборка-автоматизация

Вопрос:

[Решаемая] — правильный файл ant contrib не был получен из расположения по умолчанию в моей системе. Необходимо указать путь вручную в XML-файле сборки следующим образом:

     <taskdef resource="net/sf/antcontrib/antlib.xml">
        <classpath>
            <pathelement location="/usr/share/ant/lib/ant-contrib-1.0b3.jar"/>
        </classpath>
    </taskdef>
-------------------------------------------
 

В: У меня есть скрипт на python, который запускается через ant / Jenkins следующим образом:

 <project name="prjName"> 
    <target name="preRun" description="do something">
    .... 
    </target>
    <target name="Run" description="Run the python script">
        <exec executable="python" failonerror="true">
           <arg value="${basedir}/run.py" />
           <arg value="something" />
        </exec>
    </target>
    <target name="other1" description="do something">
     ....
    </target>

    <target name="other2" description="do something">
     ....
    </target>

</project>
 

Теперь этот скрипт python запускает внешний инструмент (web-inject, который создает некоторые файлы результатов) и продолжает сканировать слово FAIL в журналах. Как только он обнаруживает СБОЙ, он выполняет sys.exit("Error")

Таким образом, сборка завершается неудачно, но я все еще хочу выполнить target — other1. Возможно ли это с помощью try-catch? Я делаю это так, но это не работает

     <macrodef name="test-case">     
         <sequential> 
             <trycatch>
                <try>
                    <exec executable="python" failonerror="true">
                        <arg value="${basedir}/read.py" />
                    </exec>
                </try>
                <catch>
                    <echo>Investigate exceptions in the run!</echo>
                </catch>
                <finally>
                    <antcall target="other1" />
                </finally>
            </trycatch>
         </sequential>   
        </macrodef>    


<target name="other1" description="do something">
         ....
</target>
 

Комментарии:

1. Возможно, вам потребуется подробно рассказать о том, что означает «не работает».

2. Правильно ли установлен ant-contrib?

3. Поскольку у меня низкий показатель репутации, я не могу ответить на свой собственный вопрос, поэтому оставил его нерешенным. Я отредактировал его сейчас. Спасибо!

4. @Sumitk теперь у вас хороший результат. Вы должны быть в состоянии ответить на этот вопрос