728x90


간단한 ant프로젝트를 만들어보자.

ant는 전용 프로젝트를 만들 필요는 없고 그냥 있는 프로젝트에 ant설정 파일을 만들어 주면 그게 ant 프로젝트이다.

아래의 경우를 보자.



해당 프로젝트가 이번에 ant로 빌드할 프로젝트이다. 내용은 아무것도 없다.



main함수는 Main클래스에 담겨있으며 package2를 import하고 있다.

여러분들이 빌드시스템을 쓸때 중요한점이 하나 있는데 빌드 시스템은 이클립스의 설정과는 아무 관계없다.

따라서 이클립스의 빌드 시스템과는 별개로 여러분이 모두 지정해 줘야한다는 것이다.



이제 ant설정파일을 만들자. 그냥 File을 하나 만들어 주면된다.



만들때 build.xml이라는 이름으로 지어준다.



이클립스는 이 파일을 자동으로 ant설정파일로 인식한다. 왜냐하면 ant 설정파일은 항상 이름이 build.xml이기 때문이다.

이로써 이 프로젝트는 ant 빌드 프로젝트가 되었다.


<?xml version="1.0"?>
<project name="Test" default="main" basedir=".">

</project>


해당 프로젝트는 매우 기본적인 ant설정파일이다.

이렇게 만들어 주자.


이제 ant의 목적이 무엇인지가 중요하다. jar,war같은 아카이브 파일을 만드는게 목적인지

단순히 class파일을 만드는게 목적인지 아니면 실행을 시키는지 까지가 목적인지가 중요하다.

여기서는 실행을 해보도록하자.


다시 위의 설정파일을 보면 project라는 대 단위가 있고 속성으로 namedefault, basedir있다.

name은 프로젝트의 이름이다. 사실 크게 중요하진 않다.

default는 중요한데 이 빌드에 특정한 명령을 주지 않는다면 저 default까지 만드는걸 목표로 삼는다는 것이다.

basedir은 빌드를 할 경로의 기준을 의미한다. .을쓴다면 현재 build.xml폴더의 위치를 기준점으로 삼는다는 것이다.


<?xml version="1.0"?>

<project name="Test" default="main" basedir=".">
<target name="main">
<javac srcdir="./src" destdir="./bin" includeantruntime="false">
</javac>
<java classpath="./bin" classname="package1.Main">
</java>
</target>
</project>


이제 target을 만들어 준다. project는 여러개의 target으로 이루어져있으며 빌드의 목표는 결국 target이다.

우리는 target의 목표를 main으로 잡았다. 결국 실행하면 main target이 실행되게 된다.


해당 ant설정파일을 보자. 우리는 default를 main으로 했으므로 target을 main을 찾아서 한다.

그러면 target은 무엇일까? 바로 하나의 작업이라고 생각하면된다.

taget안에는 총 2개의 작업이 있다. 하나는 javac이고 하나는 java이다.


javac을 보면 srcdir과 destdir 두가지가 있다. 뒤의 includeantruntime은 그냥 false로 지정하고 사용하면된다.

srcdir의 경우에는 빌드할 소스파일의 위치이다. 즉 java파일들의 위치이다.

destdir의 경우에는 빌드한 파일을 위치할 경로이다. 즉 class파일들이 저장될 위치이다.


javac으로 인해서 bin파일에는 class파일들이 위치하게 될것이다. 우리는 그중에서 main파일을 실행하려고 한다.

main파일의 위치는 package1에 Main클래스 내부에 존재하므로 풀 경로를 classname에 적어주고,

그 패키지가 들은 경로의 이름인 ./bin을 classpath에 적어준다.



그리고 해당 프로젝트를 가서 bin을 만들어주자. 근데 보통은 만들 필요가 없는게 여러분은 이클립스로 만들었다.

이클립스는 자동으로 bin파일을 만들어 주므로 만들필요가 없지만 만약 이클립스를 쓰지 않는다면,

혹시 클래스파일의 이름이 bin이 아니였다면 어러분이 만들어줘야한다. 여기에 대한 설명은 다음에 하도록 하기로 하자.


이제 실행을 해보자. 터미널의 켜자.



shift+우클릭을 하면 해당경로에서 터미널을 킬 수 있다. PowerShell이던 cmd이던 자유자재로 스왑되기에 원하는걸 선택하자.



명령어에 ant만 쳐도 제대로 build가 되고 결과가 나온다. 우리는 System.out.println에서 Main.main()을 출력하는게 목적이였다.

출력이 제대로 되었으므로 ant빌드가 성공적이였음을 알 수 있다.



원래는 ant main같은 형식으로 사용해야 한다. 즉 원래는 ant taget명 같은 형식으로 사용해야한다는 것이다.

그러나 ant main => ant같은 형식으로 축약할 수 있었던것은 default로 main을 설정해놨기 때문이다.

이는 보통 다른 ant빌드를 썼던 프로젝트도 마찬가지이다.

가장 중요한 target의 경우를 default로 지정해주는 것이 관례이다. 따라서 프로젝트를 열어봤는데 ant 시스템을 사용중이라면

보통은 ant라는 명령어 하나만으로 빌드를 할 수있다는 것이다.

'Usage > Java-Project Management' 카테고리의 다른 글

[Ant]자바파일 여러개 컴파일하고 실행(6)  (0) 2018.03.17
[Ant]property(5)  (0) 2017.10.06
[Ant]clean target(4)  (0) 2017.10.06
[Ant]target 나누기(3)  (0) 2017.10.06
[Ant]ant설치와 환경설정(1)  (0) 2017.10.06

+ Recent posts