2012-08-22 2 views
3

ANT 프로젝트를 작성하고 POM 파일을 작성 중입니다. 현재 ANT 빌드 파일에는 weblogic의 JwscTask를 사용하여 2 개의 EAR 파일을 생성하는 대상이 있습니다. 이제이 두 개의 EAR 파일 만 원격 Repo의 웹 서버에 배포하면됩니다. 메이븐이 패키지를 생성하는 것을 원하지는 않지만 생성 된 2 개의 EAR 파일을 가져 와서 배포하십시오. 기본적으로 클린, 컴파일, 전개 단계는 메이븐 (Maven)이 담당해야한다. 포장은 ANT에 의해 수행됩니다. pom 파일에서 maven-antrun-plugin을 사용하여 build.xml 파일에서 대상을 호출합니다.maven 건너 뛰기 패키징 단계

'POM'으로 패키징을 선택하면 Maven은 패키징을 생성하지 않지만 src 파일도 컴파일하지 않습니다.

Maven 라이프 사이클에서 패키지 단계를 건너 뛸 수있는 방법이 있습니까? POM에서 패키징을 WAR로 지정한다고 가정 해 봅시다. WAR 파일의 생성을 건너 뛰고 2 개의 EAR 파일을 배포 할 수있는 방법이 있습니까?

<build> 
    <plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.3</version> 
    <executions> 
     <execution> 
     <phase>package</phase> 
     <configuration> 
     <tasks> 
      <ant antfile="${basedir}/build.xml" target="build-service"/> 
     </tasks> 
     </configuration> 
     <goals> 
      <goal>run</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 
    </plugins> 
</build> 

답변

1

mvn deploy:deploy-file 목표를 사용하여 여기에

는 POM 파일의 섹션입니다. 따라서 Maven에서 나머지 프로젝트를 수행하지 않고도 저장소에 파일을 배포 할 수 있습니다. 당신은 pom.xml는 다양한 매개 변수를 함께 배포하거나 지정 중 하나를 제공 할 수 있습니다 : 당신이 만든하지 않는

$ mvn deploy:deploy-file -Dfile=app.ear \ 
    -DpomFile=pom.xml \ 
    -DrepositoryId=VeggieCorp \ 
    -Durl=http://mvn.veggiecorp.com/releases 

또는

$ mvn deploy:deploy-file -Dfile=app.ear \ 
    -DgroupId=com.veggicorp \ 
    -DartifactId=app \ 
    -Dversion=3.2.1 \ 
    -DrepositoryId=VeggieCorp \ 
    -Durl=http://mvn.veggiecorp.com/releases 

사실, 당신도 -DrepositoryId 매개 변수가 필요하지 않습니다 settings.xml 리포지토리에 사용자 이름과 암호가 필요하거나 프록시가 필요합니다.

+0

나는 OP가 원격 Maven Repo에 아티팩트를 배포하는 대신 weblogic에 배포 할 것을 요구한다고 생각합니다. –

+0

@David : 감사합니다.하지만 POM을 통해 maven에서 패키지 단계를 건너 뛰는 방법을 찾고 있습니다. – codewarrior

+1

@ rsriram7 - 이제 알겠습니다. 이른 아침에 질문에 대답 할 때 얻는 것입니다. 내 혼란은 서버 _ 목표에이 패키지를 설치하지 않아도된다는 사실에서 비롯된 것입니다. [기본 라이프 사이클] (http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html)을 볼 수 있습니다. 기본적으로 패키지 단계가 끝나면 로컬 Maven 저장소에 _install_ 설치하고 원격 Maven 저장소에 _deploy_ 설치 작업을 수행합니다. 일종의 Weblogic 배치 플러그인을 사용하고 있습니까? pluginManager를 [단계 비활성화] (http://stackoverflow.com/q/2188746/368630)로 구성 할 수 있습니다. –