본문 바로가기

ANT/Ivy

[ANT] task 간단 정리

 

1.<Java> 태스크

자바 애플리케이션 클래스를 실행시키는 태스크임.


<java classname="test.Main">

 <arg value="-h"/>

 <classpath>

   <pathelement location="dist/helloproject.jar"/>

   <pathelement path="${java.class.path}"/>

 </classpath>

</java>


-> test 패키지의 Main 클래스를 실행한다. 클래스패스로는 ${java.class.path} 프로퍼티로

지정되어있는 디렉토리와 dist/helloproject.jar를 포함한다.


2.<javac> 태스크

<javac>는 java소스를 컴파일하는 태스크로, 아직 컴파일되지 않은 java파일이 존재하거나 혹은 .class파일이 java파일보다 이전에 컴파일된 클래스일때 컴파일한다.


<javac srcdir="${src}"

 destdir="${build}"

 includes="helloproject/p1/**, helloproject/p2/**"

 excludes="helloproject/p1/expackage/**"

 classpath="helloproject.jar"

 debug="on"

/>


-> ${src}디렉토리를 컴파일하여 ${build}디렉토리에 클래스를 생성한다. helloproject/p1 이하의 모든 파일과, helloproject/p2이하의 모든 파일이 컴파일되고, helloproject/p1/expackage이하의 모든 파일은 제외되며, helloproject.jar가 클래스 패스에 추가된다.


아래와 같이 쓸 수도 있다.

<javac destdir="${build}"

 classpath="helloproject.jar"

 debug="on">

 <src path="${src}"/>

 <include name="helloproject/p1/**"/>

 <include name="helloproject/p2/**"/>

 <exclude name="helloproject/p1/expackage/**"/>

</javac>


<src>로 srcdir속성을 <include>와 <exclude>로 includes,excludes 속성을 대체하였다.


3.<jar> 태스크

- 클래스와 자원을 묶어 jar파일로 생성하는 태스크이다.


<jar destfile="${dist}/lib/helloproject.jar"

 basedir="${build}/classes"

 includes="helloproject/test/**"

 excludes="**/Test.class"

/>

-> helloproject.jar 파일로 ${build}/classes밑에 있는 파일들을 묶는 예제이다. Test.class란 이름의 클래스는 제외한다.


<jar destfile="${dist}/lib/helloproject.jar">

 <fileset dir="${build}/classes"

  excludes="**/Test.class"

/>

<fileset dir="${src}/resources"/>

</jar>

-> fileset을 이용하여 Test.class를 제외한 모든 파일을 jar파일로 묶을때 리소스를 포함하는 예제임. resources 디렉토리에 밑에 이미지등의 파일이 존재하면 jar파일에 포함이 된다.



4.<mkdir> 태스크

<mkdir dir="${dist}/lib"/>


5.<copy> 태스크

<copy file="myfile.txt" tofile="mycopy.txt"/>


파일을 디렉토리로 복사는

<copy file="myfile.txt" todir="../some/other/dir"/>


디렉토리를 다른 디렉토리로 복사

<copy todir="../new/dir">

<fileset dir="src_dir"/>

</copy>


mapper엘리먼트를 사용해서 src_dir 디렉토리의 모든 파일 명에 .bak를 붙여서 복사

<copy todir="../backup/dir">

<fileset dir="src_dir">

<mapper type="glob" from="*" to="*.bak"/>

</copy>


6.<delete> 태스크

파일이나 파일을 포함한 디렉토리 혹은 fileset으로 추가된 파일이나 디렉토리를 삭제하는 태스크다.


<delete file="/lib/ant.jar"/>


디레토리 삭제

<delete dir="lib"/>


fileset을 사용하여 확장자가 bak인 파일을 삭제

<delete>

<fileset dir="." includes="**/*.bak"/>

</delete>


빈디렉토리도 함께 삭제

<delete includeEmptyDirs="true">

<fileset dir="build"/>

</delete>


7.<getkey> 태스크

<genkey>는 key 저장소에 key를 생성하는 태스크로 자바 1.2이상에서 지원한다.


<genkey

alias="apache-group" storepass="secret"

dname="CN=Ant Group, OU=Jakarta Division, O=Apache.org , C=US"/>


-> 아파치 그룹이란 별칭을 주고 패스워드로는 secret을 준다. dname속성을 입력한다.


dname은

<dname>

<param name="CN" value="Ant Group"/>

<param name="OU" value=Jakarta Division"/>

....


이런식으로 바꿔 쓸 수 있다.



8.<signjar>태스크

javasign명령어를 사용하여 jar파일이나 zip파일을 서명하는 태스크다.


<signjar

jar="${dist}/lib/ant.jar" alias="apache-group" storepass="secret"/>