요새는 gradle 쓰지, ant 를 얼마나 쓸까 싶으냐만은 언제나 후다다닥 할땐-_-)s


.. 자

Ant 빌드에서 메이븐 명령어를 사용하는 방법이다.

전체적인 스텝은 다음과 같다. 

  1. maven-ant-task 다운로드
  2. build.xml 에 namespace 추가
  3. 메이븐 홈 위치 설정
  4. target 작성 후 target 안에 artifact:xxxxx 와 같은 task 추가
  5. target  실행

이제 각 단계 별로 자세히 알아보자.

1.Maven Ant Task 다운로드

ant 에서 maven 을 사용하기 위해서는 maven 이 제공해주는 ant 용 메이븐 task 가 필요한다.

다음 사이트에서 maven-ant-task-x.x.x.jar 파일을 다운로드받는다. (본 문서 작성시에 안정버젼은 2.1.3 이였다.)

Download Site : http://maven.apache.org/ant-tasks/

다운받은 maven-ant-task-x.x.x.jar 파일을 build.xml 이 참조할 수 있는 위치에 둔다. (ex: src/antlib/maven-ant-task-2.1.3.jar)

2.build.xml 에 namespace 추가

build.xml 의 루트 element 인 project 엘리먼트에 다음과 같이 artifact namespace 를 추가한다.

이때 maven-ant-task.classpath 패스에 1단계에서 내려받은 maven-ant-task-x.x.x.jar 를 참조할 수 있도록 위치를 지정한다.

build.xml
<?xml version="1.0" encoding="utf-8" ?>
<project name="ECM RPC Project" default="genkey" basedir="." xmlns:artifact="antlib:org.apache.maven.artifact.ant">
    <path id="maven-ant-tasks.classpath" path="src/antlib/maven-ant-tasks-2.1.3.jar" />   
    <typedef resource="org/apache/maven/artifact/ant/antlib.xml"
             uri="antlib:org.apache.maven.artifact.ant"
             classpathref="maven-ant-tasks.classpath" />
</project>

 

3.자신의 환경에 맞도록 메이븐 홈 위치 설정

사용할 메이븐 홈 디렉토리를 설정한다. 본 문서에서는 시스템 환경변수로부터 읽어들였다.

build.xml
<?xml version="1.0" encoding="utf-8" ?>
<project name="ECM RPC Project" default="genkey" basedir="." xmlns:artifact="antlib:org.apache.maven.artifact.ant">
    <path id="maven-ant-tasks.classpath" path="src/antlib/maven-ant-tasks-2.1.3.jar" />   
    <typedef resource="org/apache/maven/artifact/ant/antlib.xml"
             uri="antlib:org.apache.maven.artifact.ant"
             classpathref="maven-ant-tasks.classpath" />
     
    <property name="maven-home.path" value="${env.M2_HOME}" />
     
</project>

 

4.target 작성

메이븐 명령어(mvn)도 결국은 ant target 으로 실행된다. target 을 생성한 후 하위에 필요한 maven task 를 작성하도록 하자.

메이븐 task 들은 2단계에서 설정한 namespace 로 찾을 수 있다.

자세한 모든 task 는 공식 사이트(http://maven.apache.org/ant-tasks/) 를 참조하라.

다음은 "mvn clean war:exploded -Pcomas -Pslothink1" 과 동일한 명령어를 수행하는 task 이다.

build.xml
<target name="make-webapp-with-slothink1-profile">
    <artifact:mvn pom="pom.xml" mavenHome="${maven-home.path}" fork="true">
        <arg value="clean"/>
        <arg value="war:exploded"/>
        <arg value="-Pcomas"/>
        <arg value="-Pslothink1"/>
    </artifact:mvn>
</target>

 

5.target 실행

4단계에서 설정한 target 을 실행한다. 

 

참조 : http://maven.apache.org/ant-tasks

+ Recent posts