2011-04-05 2 views
5

아파치 톰캣에 임베드 된 WAR 패키지로 패키지를 배포하고 싶습니다. Tomcat을 내 응용 프로그램과 함께 배포하고 싶습니다.Maven을 사용하여 웹 앱과 바람둥이를 함께 패키지화하려면 어떻게해야합니까?

이런 종류의 배포 패키지는 Maven으로 어떻게 할 수 있습니까?

나는 Maven Cargo Plugin을 보았지만 응용 프로그램을 로컬 컨테이너에 배포하는 것으로 보입니다. 아마도 Cargo Plugin 이상의 추가 단계가 필요한 것입니다. cargo:package은 흥미롭지 만 설명서가 부족합니다.

+1

'메이븐 어셈블리 플러그인 '을 보았습니까? http://docs.codehaus.org/display/MAVENUSER/Delivery+with+Tomcat –

+0

아니요, 지금 확인하십시오. 링크 고마워요. –

+2

Tomcat과 함께 애플리케이션을 패키징하면 사용자가 Tomcat의 최신 버전을 사용하지 않을 것임을 명심하십시오. Tomcat은 Java (JRE)도 설치해야합니다. Tomcat을 포함하는 경우 JRE도 포함될 수 있습니다. – Bernard

답변

8

Tomasz의 의견을 정교하게 처리하려면 다음을 수행 할 수 있습니다.

  1. 로컬 저장소에 tomcat을 다운로드하여 설치하십시오.

    MVN 설치 : 설치 파일 -DgroupId = org.apache -DartifactId = 바람둥이 -Dversion = 7.0.10 -Dpackaging = 압축 -dfile =/경로/maven dependency plugin

  2. 사용 unpack 목표/파일 웹 어플리케이션 폴더에 응용 프로그램 전쟁을 배치하고 당신은 this의 pom.xml 및 this 조립 설명을 참조 할 수 있습니다 우편

를 만드는 작업 폴더

  • 사용 maven assembly plugin에 바람둥이 압축을 풉니 다.

  • +0

    감사합니다. Raghuram. 내가 아직 시도하지는 않았지만, 당신이 제공 한 링크를 보면, 의존성 플러그인이 갈 길이 멀다. –

    4

    더 좋은 방법은 수 (그것뿐만 아니라 비 Heroku가 응용 프로그램에서 작동해야하지만)을 Heroku documentation에 지정된대로 뭔가

    는 (링크가 죽으면 그냥 경우) 요약하면

    톰캣 삽입 패키지가 될 수 당신에게

    <dependency> 
        <groupId>org.apache.tomcat.embed</groupId> 
        <artifactId>tomcat-embed-core</artifactId> 
        <version>${tomcat.version}</version> 
    </dependency> 
    

    당신이 당신의 메인 클래스 중 하나를 참조 할 수 Tomcat API를 제공 그리고 당신은 같은 메인 클래스의 무언가를 필요

    package launch; 
    
    import java.io.File; 
    import org.apache.catalina.startup.Tomcat; 
    
    public class Main { 
    
        public static void main(String[] args) throws Exception { 
    
         String webappDirLocation = "src/main/webapp/"; 
         Tomcat tomcat = new Tomcat(); 
         tomcat.setPort(8080); 
    
         tomcat.addWebapp("/", new File(webappDirLocation).getAbsolutePath()); 
         System.out.println("configuring app with basedir: " + 
          new File("./" + webappDirLocation).getAbsolutePath()); 
    
         tomcat.start(); 
         tomcat.getServer().await(); 
        } 
    } 
    
    관련 문제