O Apache Ant pode executar totalmente uma tarefa sobre um conjunto de arquivos sem parar na primeira falha?

1

Eu tenho um alvo configurado em ant que executa uma checagem de PHP em todos os arquivos modificados desde a última checagem.

<target
    name="lint"
    unless="lint.done">
    <apply executable="php" taskname="lint" failonerror="true">
        <arg value="-l">
        <fileset dir="...">
            <include name="**/*.php">
            <modified/>
        </fileset>
    </apply>
</target>

Infelizmente, se isso falhar devido a um único arquivo que falhou na verificação de fiapos, todos os outros arquivos não serão verificados, mas ainda serão armazenados no cache modificado. O arquivo que causou a falha também será armazenado em cache por modified Isso significa que na próxima vez que isso ocorrer, a verificação será aprovada, mesmo que nenhuma alteração tenha sido feita para abordar o motivo da falha na verificação de fiapos.

No final, se ocorrer um erro de lint, a compilação deverá falhar. A parte difícil é tentar fazer com que ela falhe e não pare antes que tenha terminado o fiapo.

As soluções seriam implementar o seguinte:

  • Se a verificação falhar, não atualize o cache modificado.
  • Se a verificação falhar em um arquivo, continue lintando outros arquivos, mas ainda marque a construção como uma falha.

As duas soluções são possíveis?

Para este primeiro ponto, sei que você pode passar um argumento para modified , o que impede que o cache seja atualizado. Você poderia, então, chamar um segundo modified após a verificação de fiapos para armazenar apenas os arquivos em cache se a verificação fosse bem-sucedida?

Para o segundo ponto, a maneira principal que posso pensar é não falhar no erro de fiapos, mas passar os resultados dos fiapos para um script que verificaria e produziria todos os arquivos com falha ao mesmo tempo, se necessário.

    
por Sean 17.11.2015 / 11:37

0 respostas