2012-05-31 54 views
1

我在的build.xml而且即使needxmlfile以下战争任务设置为蚂蚁(1.8.2版本)抱怨当的web.xml文件不存在( “BUILD 失败...部署描述符:/home/.../web/WEB-INF/web.xml不存在”)战争Ant任务仍然抱怨

我错过了什么?

<target name="war" depends="build">                   
    <mkdir dir="${build.dir}"/>                     
    <war                           
     needxmlfile="false"                      
     basedir="${webroot.dir}"                     
     warfile="${build.dir}/${project.distname}.war"                
     webxml="${webinf.dir}/web.xml">                   
     <exclude name="WEB-INF/${build.dir}/**"/>                 
     <exclude name="WEB-INF/src/**"/>                   
     <exclude name="WEB-INF/web.xml"/>                   
    </war>                          
    </target> 
+1

为什么指定“webxml”属性,如果该文件不存在?也许我错过了一些东西。 –

+0

我对这个特殊情况的原因是为一些Web项目使用了相同的Ant构建文件模板,其中一些不需要web.xml –

回答

1

@ O'Connor:谢谢使用文件集来提取web.xml的提示。不过,我不确定你对needxmlfile设置为true是否正确(至少在我的实验中,我目睹了你所描述的与之相反的情况)。无论如何,最终我意识到甚至不需要文件集,因为Ant任务显然将所有东西都打包在basedir(除非明确排除在外),所以我现在使用的是以下战争任务,它适用于以下战争任务:的web.xml文件存在与否:

<target name="war" depends="build">                  
    <mkdir dir="${build.dir}"/>                    
    <war                         
     needxmlfile="false"                     
     basedir="${webroot.dir}"                    
     destfile="${build.dir}/${project.distname}.war">              
     <exclude name="WEB-INF/${build.dir}/**"/>                
     <exclude name="WEB-INF/src/**"/>                  
    </war>                         
</target>   

设置needxmlfile为“true”将导致蚂蚁抱怨,如果没有web.xml文件可以“华林”中找到。

1

ANT documentation状态,除非needxmlfile属性设置为真正

试试这个,使用一个文件集的可选web.xml文件拉webxml属性是强制性的。