2011-04-28 5 views
0

과 귀 파일 만들기, 내가 두 가지의 모듈로 구성되어 내 프로젝트의 build.xml 할 필요가 난 해당 war 파일을 나타냅니다 application.xml에 파일이내가 많은 사이트를 참조 개미 새로운 오전 개미

그래서 내 질문이 해당 war 파일을 참조 할 것 또는 내가 알려 주시기 바랍니다 전체 시나리오를 컴파일 할 필요가 있는지 여부는 충분한 application.xml에 파일을

<ear destfile="${dist.dir}/${ant.project.name}.ear" appxml="${conf.dir}/application.xml"> 
<metainf dir="${build.dir}/META-INF"/> 
<fileset dir="${dist.dir}" includes="*.jar,*.war"/> 
</ear> 

를 추가하는 것입니다. 이것이 어떻게 해결되는지.

답변

2

나는 당신이 무엇을 요구하고 있는지 확실하지 않습니다.

작업을 수행하려면 이미 필요한 병과 전쟁을 컴파일해야합니다.

이러한 병과 전쟁이 이미 구축 된 경우 사례에서 설명한대로 <ear> 작업에서 해당 병과 전쟁을 참조하기 만하면됩니다. application.xml은 귀를 만들기 전에 이미 존재해야합니다. application.xml은 항아리와 전쟁을 일으키지 않습니다. 그렇게해야합니다.

아직 전쟁과 항아리를 제작하지 않았다면 먼저해야합니다.

<project name="foo" basedir="." default="package"> 

    <!-- Some standard properties you've defined --> 
    <property name="target.dir" value="${basedir}/target"/> 
    <property name="xxx" value="yyy"/> 
    <property name="xxx" value="yyy"/> 
    <property name="xxx" value="yyy"/> 

    <!-- Compile properties that allow overrides --> 

    <property name="javac.nowarn" value="false"/> 
    <property name="javac.listfiles" value="false"/> 
    <property name="javac.srcdir" value="source"/> 
    <property name="javac.distdir" value="${target.dir}/classes"/> 


    <target name="clean" 
     description="cleans everything nice and shiny"> 
     <delete dir="${target.dir}"/> 
    </target> 

    <target name="compile" 
     description="Compiles everything"> 

     <mkdir dir="${javac.distdir}"/> 
     <javac srcdir="${javac.srcdir}" 
      destdir="${javac.destdir}" 
      [...] 
      [...]/> 
    </target> 

    <target name="package.jar" 
     depends="compile" 
     description="Package jarfile"> 

     <jar destfile="${target.dir}/jarname.jar" 
      [...] 
      [...]/> 
    </target> 

    <target name="package.jar2" 
     depends="compile" 
     description="Package jarfile"> 

     <jar destfile="${target.dir}/jarname2.jar" 
      [...] 
      [...]/> 
    </target> 

    <target name="package.war" 
     depends="compile" 
     description="Package jarfile"> 

     <war destfile="${target.dir}/jarname.jar" 
      [...] 
      [...]/> 
    </target> 

    <target name="package" 
     depends="package.jar" 
     description="Make the ear"> 

     <ear destfile="${target.dir}/earfile.ear" 
      [...]/> 
    </target> 
</project> 

는 기본적으로,이 목표의 무리로 구성되어 있으며 각 대상은 하나 개의 작업을 수행하십시오 build.xml의 일반적인 개요는 다음과 같이 보인다. 다른 대상에 종속 된 대상을 가질 수 있습니다. 예를 들어이 특정 build.xml은 자동으로 package 작업을 실행합니다. 패키지 작업은 작업에 따라 달라지는 package.jar 작업에 따라 다릅니다. 따라서 build.xml 파일은 먼저 compile을 호출 한 다음 package.jar을 호출하고 package을 호출합니다.

기억해야 할 중요한 점은 이벤트 순서를 지정하지 않는다는 것입니다. 개미가 그걸 알아 내도록 시켰고 개미가 네가해야 할 일을 알아 내도록 시켰어. Java 소스 파일을 수정했다고 가정 해 보겠습니다. Ant는 하나의 파일 만 다시 컴파일해야한다는 것을 알고 있습니다. 또한 클래스 파일을 포함하는 jar 파일을 다시 빌드해야 할 수도 있음을 알고 있습니다. 그리고, 그것은 귀를 재건해야한다는 것을 알고 있습니다. 대부분의 작업은 스스로 알아낼 수 있으며 각 빌드마다 clean을 수행하지 않아도됩니다. (clean 대상이 package 또는 compile에 의해 호출되지 않음을 알게되므로 수동으로 호출해야합니다.)

다른 권장 사항은 작업 영역을 깨끗하게 유지하는 것입니다. 생성 한 모든 파일은 ${target.dir} 디렉토리에 저장해야합니다. 그런 식으로 clean을 수행하면 해당 디렉토리 하나만 삭제하면됩니다.

이 답변을 귀하의 질문에 보내주십시오.