2011-08-14 5 views
6

나는 swingx, spring을 사용하고 ant를 사용하여 데스크탑 애플리케이션을 개발 중이다. 이것은 개미의 첫 번째 프로젝트입니다. 클래스 경로 jar를 ant에 의해 실행 가능한 jar 빌드에 추가하는 방법은 무엇입니까? 나는 스윙 스 (springx jar)를 가지고있다. 항아리에 대한이 내 목표 :Ant의 항아리에 클래스 패스 jar를 포함하는 방법

<target name="jar"> 
    <mkdir dir="build/jar" /> 
    <jar destfile="build/jar/MainClass.jar" basedir="build/classes"> 
     <manifest> 
      <attribute name="Main-Class" value="MainClass" /> 
     </manifest>   
    </jar> 
</target> 

편집 :

<project name="Number"> 
    <description> 
      description 
    </description> 

    <property name="lib" value="lib" /> 
    <property name="src" value="src" /> 
    <property name="build" value="build" /> 
    <property name="classes" value="classes" /> 
    <property name="jar" value="jar"/> 

    <target name="clean"> 
     <delete dir="${build}" /> 
    </target> 

    <path id="classpath"> 
     <fileset dir="${lib}" includes="**/*.jar" /> 
    </path> 

    <target name="compile"> 
     <mkdir dir="${build}/${classes}" /> 
     <javac srcdir="${src}" destdir="${build}/${classes}" classpathref="classpath" /> 
    </target> 

    <target name="jar" depends="clean, compile"> 
     <mkdir dir="${build}/${jar}" /> 
     <jar destfile="build/jar/Number.jar" basedir="${build}/${classes}"> 
      <manifest> 
       <attribute name="Main-Class" value="MainClass" /> 
      </manifest> 
      <fileset file="test.txt"> 
      </fileset> 
     </jar> 
    </target> 

    <target name="run"> 
     <java jar="${build}/${jar}/MainClass.jar" fork="true" /> 
    </target> 
</project> 

답변

18

다음과 같은 코드를 추가 할 수 있습니다 :

<target name="compile"> 
    <mkdir dir="${classes.dir}"/> 
    <javac srcdir="${src.dir}" destdir="${classes.dir}"> 
     <classpath> 
       <fileset dir="${lib}"> 
        <include name="**/*.jar" /> 
       </fileset> 
     </classpath> 
    </javac> 
</target> 

<target name="jar" depends="compile"> 
    <mkdir dir="${jar.dir}"/> 
    <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}"> 
     <manifest> 
      <attribute name="Main-Class" value="${main-class}"/> 
     </manifest> 
     <zipgroupfileset dir="${lib}" includes="**/*.jar"/> 
    </jar> 

</target> 

이것은 아래에있는 모든 * .jar 파일을 포함 할 것 $ {lib} 폴더

그러나이 코드는 개미 대상에 있어야합니다. jar 번들을 생성하기 전에 컴파일해야합니다. 그러므로 당신은 스윙 스 스프링 용기가 필요합니다.

+0

노드에 넣을 위치는? –

+0

나는 컴파일 타겟을 가진 코드를 함께 제공했다. 중요한 것은 jar 타겟은 컴파일에 의존하며 jar와 함께 클래스 경로를 처리한다는 것입니다. 희망은 지금 그것은 분명하다 :). 기본 개미 구조에 대한이 튜토리얼을 확인하십시오. http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html – Prine

+1

먼저 튜토리얼을 읽고 편집에 표시된대로 수행했습니다. 하지만 swingx jar 파일이 Number.jar에 추가되지 않아 내 코드가 작동하지 않고 실행되지 못하는 이유입니다. –

관련 문제