2009-11-24 3 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에 있습니다/기본 디렉토리/판매 및 그 하위 디렉토리. 이 작업을 실행하려고하면 "Zip 파일 자체를 포함 할 수 없습니다."라는 메시지가 나타납니다. 그 파일 세트를 분명히 퍼팅하는 것은 올바른 방법이 아닙니다. 아카이브에 포함 할 파일을 지정하기 위해 작업과 web.xml 파일에 넣어야 할 내용이 명확하지 않습니다.

답변

2

나는 basedir = "$ {basedir}"이 문제의 원인이라고 생각합니다. 또한, 필자는 작성한 방법에 따라 web.xml이 WEB-INF 디렉토리에 존재해야한다고 생각한다.

<?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> 

은 그럼 당신은 실행할 수 있습니다 다음과 같이

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

<web-app> 
</web-app> 

그런 /build.xml 업데이트하려고 : 그래서

, 다음과 같이 /WEB-INF/web.xml를 만들어보십시오 "ant war"를 명령 줄에서 가져와 현재 디렉토리에 "mywar.war"를 만들어야합니다.

+0

basedir은 프로젝트에서 ../..로 정의되며 빌드는 C :/basedir/build/ant에있는 .cmd 스크립트를 통해 실행되므로 ../ ..이 C :/basedir을 올바르게 참조하고 있습니다. ... 프로젝트는 로 정의됩니다. –

+0

내 오류가 완전히 다른 문제로 인해 발생하고 있으며 여기의 구문이 문제가없는 것으로 나타났습니다. 도와 주셔서 감사합니다. –

관련 문제