2009-11-24 64 views
0

我需要創建一個只包含靜態內容文件(gifs,jpgs,html,js等)的WAR文件。我有一個包含所有文件的目錄結構,需要通過ANT(1.5.1)構建任務創建WAR文件。現在,我只有這個在Ant任務:如何指定要包含在WAR文件中的文件?

<war destfile="${output.file}" webxml="WEB-INF/web.xml" basedir="${basedir}"> 
    <fileset dir="${basedir}/sales" />  
</war> 

我想包括的文件是在C:/ BASEDIR /銷售及其子目錄。當我嘗試運行這個任務時,我得到「一個zip文件不能包含它自己」。因此,明確地將該文件集放在那裏並不是正確的方法。我不清楚我需要在任務中以及web.xml文件中指定哪些文件包含在歸檔中。

回答

2

我認爲basedir =「$ {basedir}」會導致您的問題。另外,我認爲你寫它的方式需要web.xml存在於WEB-INF目錄內,相對於你運行ant的地方。

所以,儘量創造/WEB-INF/web.xml如下:

<?xml version="1.0" encoding="utf-8" ?> 

<web-app> 
</web-app> 

然後嘗試更新/build.xml如下:

<?xml version="1.0" encoding="UTF-8"?> 
<project name="yourproject" basedir="." default="war" xmlns:ivy="antlib:org.apache.ivy.ant"> 
     <target name="war" description="--> build war file"> 
       <war destfile="./mywar.war" webxml="WEB-INF/web.xml"> 
        <fileset dir="C:/basedir/sales" /> 
       </war> 
     </target> 
</project> 

那麼你應該能夠運行命令行中的「ant war」,它應該在當前目錄中創建「mywar.war」。

+0

basedir在項目中定義爲../ ..構建通過位於C:/ basedir/build/ant的.cmd腳本運行,因此../ ..正確引用C:/ basedir ...項目被定義爲。 – 2009-11-24 16:50:35

+0

我發現我的錯誤是由一個完全不同的問題引起的,這裏的語法很好。謝謝您的幫助。 – 2009-11-24 17:00:47

相關問題