2014-04-24 1 views
1

자바 웹 앱이 있고 Ant를 사용하여 나를 위해 WAR 파일을 생성하고 있습니다. 여기 Ant WAR 작업에 설정 파일을 포함시키는 방법은 무엇입니까?

myapp.war/ 
    META-INF/ 
    WEB-INF/ 
     web.xml 
     mvc-dispatcher.xml 
     pages/ 
      home.jsp 
      cool.jsp 
     classes/ 
      <Compiled Java binaries> 
     lib/ 
      <All lib JARS> 

내 WAR 작업입니다 :

src/main/java/ 
    <Java sources> 
src/main/config/ 
    web.xml 
    mvc-dispatcher-servlet.xml 
    pages/ 
     home.jsp 
     cool.jsp 
lib/main/ 
    <Libs> 
gen/ 
    bin/ 
    dist/ 

내가 자바 WAR는 다음 디렉토리 구조로 제작해야합니다 여기에 내 프로젝트 구조입니다

<target name="package" depends="compile"> 
    <war destfile="gen/dist/myapp.war" webxml="src/main/config/web.xml" 
      basedir="gen/bin" 
      includes="src/main/config"> 
     <classes dir="gen/bin" /> 
     <lib dir="lib/main" /> 
    </war> 
</target> 

나는이 목표를 실행하는 경우 , 다음과 같은 구조의 WAR를 생성합니다 :

mvc-dispatcher-servlet.xmlpages 디렉토리가 모두 누락 된 점에 유의하십시오. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+1

: 기본 디렉토리 = "세대/빈은"이 데이터를 –

+0

감사 @LeosLiterak (+1)을 취할 루트 디렉토리입니다 그러나 이것은 부분적으로 만 작동합니다. basedir = "gen/bin"을 basedir = "src/main/config"로 변경합니다. WEB-INF와 META-INF와 같은 레벨의 WAR에 설정 파일을 저장합니다. 하지만 ** ** WEB-INF 안에 ** 필요합니다. 예를 들어, 지금 WAR은'WEB-INF'와 같은 dir에'pages'를 가지고 있습니다 만,'WEB-INF/pages' 등에 필요합니다. – AdjustingForInflation

답변

1

당신은 webinf 요소를 찾고 있습니다. 자세한 내용은 ant manual을 참조하십시오.

중첩 된 webinf 요소는 FileSet을 지정합니다. 이 파일 세트에 포함 된 모든 파일은 war 파일의 WEB-INF 디렉토리에 저장됩니다. 이 파일 세트에 web.xml 파일이 포함되어 있으면 파일이 무시되고 경고가 표시됩니다.

몇 가지 사용 사례를 결합한 다음 발췌문을 사용하십시오. 여기

<war destfile="${build.dir}/${ant.project.name}_${version}.war" webxml="${web.dir}/WEB-INF/web.xml"> 
    <webinf dir="${web.dir}/WEB-INF"> 
     <exclude name="web.xml"/> 
     <exclude name="classes/**"/> 
     <exclude name="lib/**"/> 
     <exclude name="flex/services-config.xml"/> 
    </webinf> 
    <lib dir="${war.web-inf.dir}/lib"/> 
    <lib file="${build.dir}/*.jar"/> 
    <fileset dir="${web.dir}"> 
     <include name="img/*"/> 
    </fileset> 
0

war 대신 zip 개미 작업을 사용하는 것이 좋습니다. 필요한 구조의 폴더에있는 모든 클래스/라이브러리를 복사하고 내용을 .war 파일로 압축 할 수 있습니다. 이것은 web.xml이 전쟁에서 올바른 위치에있는 한 어떠한 문제도없이 전쟁으로 전개됩니다.

관련 문제