2011-09-26 5 views
5

으로 사용할 수 있습니까? 우리는 ANT와 Maven을 함께 사용하여 프로젝트를 빌드 할 수 있음을 알고 있습니다. Maven의 POM.xml을 통해 ANT 스크립트를 실행할 수 있습니다. 하지만 내 질문에 우리는 ANT의 build.xml을 통해 pom.xml을 실행할 수 있습니까? 즉, build.xml에서 maven 빌드를 만들 수 있습니까우리는 pom.xml을 ANT

답변

8

예, maven ant tasks을 사용합니다.

이 페이지는 개미 빌드 스크립트에 통합 할 수있는 여러 메이븐 작업을 나열하여 두 기능을 결합합니다. 예를 들어, mvn task이 있으며, 문서화 된 것처럼 개미는 전체 메이븐 빌드를 수행 할 수 있습니다.

<artifact:mvn mavenHome="/path/to/maven-3.0.x"> 
    <arg value="install"/> 
    </artifact:mvn> 

이 외에도,

  • 종속성
  • 설치 작업 및 배포 작업
  • 폼은 작업

예제와 함께 설명 된 각이있다.

+1

이론적으로는 질문에 대답 할 수 있지만 여기에 대답의 핵심 부분을 포함하고 참조 할 수있는 링크를 제공하는 것이 좋습니다 (http://meta.stackexchange.com/q/8259). – oers

+0

@Raghuram, 링크를 제공해 주셔서 감사합니다. 하지만 어떤 예를 든 당신의 답을 정교하게 만들 수 있습니까? – Sachchidanand

+0

@ Gaurav. 사실 링크에는 필요한 모든 정보가 있습니다. 나는 어쨌든 대답을 정교하게 다듬었다. 필요한 특정 정보로 질문을 편집하고 다른 사람이 도울 수 있습니다. – Raghuram

1

MavenANT은 매우 다른 빌드 도구입니다. ANT에서는 모든 논리를 직접 작성하는 반면 표준 빌드 프로세스는 Maven으로 "구운"것입니다. POM 파일에는 논리가 포함되어 있지 않으며 프로젝트에 대한 일련의 선언이 포함되어 있습니다.

Maven의 작동 방식을 잘 알고 있다면 이론적으로 POM을 가져 와서 Maven 빌드의 동작을 에뮬레이션하는 ANT 빌드를 생성 할 수 있습니다. ANT가 종속성 관리와 같은 Maven 기능을 잃어 버렸기 때문에 주로 다른 방향으로 변환 할 수있는 솔루션에 대해서는 알지 못합니다.

ANT 빌드를 Maven으로 변환하는 대신 기존 빌드 로직을 유지하고 클래스 경로 관리를 ivy 또는 Maven ANT 작업에 위임하는 것이 좋습니다. 또한이 도구는 빌드 출력을 Maven 저장소에 게시하는 작업을 제공하므로 프로젝트가 Maven을 사용하여 다른 프로젝트와 공유 할 수 있습니다.

마지막으로 나는 ivy 옹호자이며 업그레이드 프로세스를 도울 수있는 ant2ivy 스크립트를 작성했습니다. Maven 중앙 저장소에서 프로젝트 종속성을 다운로드하기위한 초기 구성 파일 세트를 작성합니다.