用failonerror = false捕获失败

时间:2014-02-25 22:29:45

标签: maven ant archiva

我正在使用 maven-ant-tasks-2.1.3 来从Archiva存储库中提取依赖关系。在对Archiva执行重新部署版本时出现故障使用现有的Ant脚本。我不能直接使用Maven。我想捕获失败并且不会导致构建失败。我有一个变量值的属性文件,如groupId。

我尝试拉出依赖项,如果它不存在则失败。

<artifact:dependencies filesetId="dependency.fileset" >
  <remoteRepository id="central" url="http://mvn-repo....../archiva/repository/internal/"/>
    <dependency
        groupId="${groupId}"
        artifactId="${artifactId}"
        version="${version}"
    />      
</artifact:dependencies>

在将工件重新部署到Archiva repo 时,我也遇到了失败。

<target name="deploy-to-maven">   
<artifact:install-provider artifactId="wagon-webdav" version="1.0-beta-2"/>
    <artifact:pom id="deploypom" file="${basedir}/pom-entity.xml" />    
    <artifact:deploy file="${unzip.dir}/${target.jar.name}.jar">
        <remoteRepository url="dav:${repository-uri}">  
            <authentication username="${repository.username}" password="${repository.password}"/>
        </remoteRepository>
        <pom refid="deploypom"/>        
    </artifact:deploy>
</target>

我希望检查文件是否存在,然后将可用属性设置为false(如果它不存在)。然后我可以使用目标deploy-to-maven检查该属性

提前感谢任何提示,

维杰

1 个答案:

答案 0 :(得分:1)

这听起来像是使用ant-contrib trycatch任务的好时机:

<trycatch>
    <try>
        <artifact:dependencies filesetId="dependency.fileset">
            <remoteRepository id="central" url="http://mvn-repo....../archiva/repository/internal/" />
            <dependency
                groupId="${groupId}"
                artifactId="${artifactId}"
                version="${version}"
            />
        </artifact:dependencies>
        <property name="dependency.exists" value="true" />
    </try>
    <catch>
        <echo message="Dependency cannot be resolved." />
        <property name="dependency.exists" value="false" />
    </catch>
</trycatch>