2010-03-23 4 views
7

Maven & Eclipse를 사용하는 Jetty에서 Visual Studio를 사용하여 수행 한 작업과 비교해 보면 매우 실망 스럽습니다. 변경 사항을 확인하기 전에 부티크가 모든 것을 다시로드하기를 기다리면서 변경 사항을 적용 할 때마다 (예 : 내보기 파일의 (* .jsp)) 전체 웹을 다시 패키지해야합니다.Jetty & Maven을 사용하는 Webdevelopment

변경된 파일을 선택하고 변경된 파일을 웹 서버에 배포하는 자동 플러그인과 같은 방법이 있습니까?

+0

방금이 게시물을 우연히 발견 했으므로이 문제에 대한 한 가지 공통적 인 해결책은 http://www.zeroturnaround.com/jrebel/입니다. – Andy

답변

13

Maven, Jetty (Eclipse)를 함께 사용하는 방법은 명확하지 않지만 질문에 Maven 태그가 붙어 있으므로 Maven 방식을 다룰 것입니다. 유형이 war 인 프로젝트에서 웹 응용 프로그램을 쉽게 실행하고 실행하는 한 가지 방법은 Maven Jetty Plugin을 사용하는 것입니다. 이렇게하려면 단순히 POM에 다음 코드를 추가합니다

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.mortbay.jetty</groupId> 
     <artifactId>maven-jetty-plugin</artifactId> 
     <version>6.1.10</version> 
     </plugin> 
     ... 
    </plugins> 
    ... 
    </build> 
    ... 
</project> 

을이 설정으로 배포 된 응용 프로그램과 부두 컨테이너를 시작합니다 mvn jetty:run를 실행. 뷰를 변경하면 요청시 JSP가 다시 컴파일됩니다. 또한 자바 코드 변경을 감시하는 플러그인 부두를 구성하려면 scanIntervalSeconds 옵션을 추가해야합니다 :

scanIntervalSeconds옵션합니다. 웹 응용 프로그램을 스윕하는 간격을 초 단위로 변경하여 변경 사항을 확인하고 발견되면 자동으로 다시 배포합니다. 기본적으로이 값은 0이며, 이는 빠른 배포 검색을 비활성화합니다. 0보다 큰 숫자는 그것을 가능하게합니다.

그래서 구성이 같을 수 있습니다

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.mortbay.jetty</groupId> 
     <artifactId>maven-jetty-plugin</artifactId> 
     <version>6.1.10</version> 
     <configuration> 
      <scanIntervalSeconds>1</scanIntervalSeconds> 
     </configuration> 
     </plugin> 
     ... 
    </plugins> 
    ... 
    </build> 
    ... 
</project> 

그리고 원격 디버거를 연결 할 수 있도록하려면, these instructions를 보라.

이것은 Maven과 Eclipse에서 Jetty를 항상 사용한 방식이며, 저는 항상이 설정에 만족해했습니다. 나는 WTP를 위해 Jetty 어댑터를 사용한 적이 없으며, 이전 설정은 탁월합니다.

+0

흠, 재미있을 것 같습니다. 사실, 필자는 분리 된 플러그인에 대해 생각하고 있었는데, 파일 변경에 대한 응답으로 maven 단계 (예 :'package')를 다시 호출 할 수 있습니다. scanIntervalSeconds는 멋진 옵션입니다. 그러나이 옵션을 제공하지 않는 Google App Engine (예 : maven-gae-plugin)과 같은 다른 버전의 부티크를 시작하는 다른 플러그인은 어떻게해야할까요? –

+0

@Phuong 안타깝게도 나는 gae 플러그인에 대한 경험이 없으므로 그것에 대해 많이 말할 수는 없습니다. –

+0

변경된 파일을 배포 된 폴더로 복사하는 데 사용할 수있는이 FileSync eclipse 플러그인은 http://andrei.gmxhome.de/filesync/index.html에 있습니다. 지금 당장은 노력하고있어, 메이븐 플러그인이 제공 할 수있는 것에 의존하지 않을 것이므로 유망 해 보입니다. –

0

Eclipse에서 Jetty를 사용하지 않았지만 WTP와 m2eclipse 플러그인을 사용하여 Tomcat을 사용한다면 (Jetty도 사용할 수 있다고 가정) Eclipse는 리소스가 저장 될 때마다 웹 애플리케이션을 빌드하고 게시합니다.

  1. 'war'패키지가 포함 된 Maven 프로젝트를 생성 (또는 기존 사용).

  2. Eclipse "서버"보기에서 서버를 마우스 오른쪽 단추로 클릭하여 설정하십시오.

  3. 구성된 서버를 마우스 오른쪽 단추로 클릭하고 "프로젝트 추가/제거"를 선택하고 프로젝트를 선택하십시오.

  4. 서버보기에서 녹색 삼각형을 클릭하여 서버를 시작하십시오.

이제 Eclipse는 변경 될 때마다 웹 응용 프로그램을 자동 빌드 및 게시해야합니다. 이 기능을 사용하려면 m2eclipse 플러그인과 m2eclipse WTP 통합 플러그인이 있어야합니다.

+0

@Will : maven 프로젝트에서는 pom.xml에 저장된 설정이 서버 (예 : mvn goal 호출과 같은 포트)를 시작하는 데 사용됩니다. 나는 그것이 당신의 방법으로 가능한지 궁금해? –

관련 문제