2014-12-23 7 views
0

누구든지 tomcat의 webapps 디렉토리 (포함되지 않은 서버 gretty 또는 gradle tomcat plugin; version7, 환경에 독립적 인)에서 프로젝트 폴더에 직접 소스 폴더의 파일을 복사하는 'hot deployment'플러그인 (또는 쉘 스크립트와 같은 미들웨어)을 알고 있습니까?tomcat7에 gradle 소스를 빠르게 배포하는 방법은 무엇입니까?

결국 코드 제작 중에 Java 웹 응용 프로그램을 배포 (재실행)하는 스마트 개발 워크 플로우를 실현하고 싶습니다. grunt watch과 같은 작업을 찾고 있습니다.

시나리오 : WEB-INF/lib 폴더에 자체 포함 된 실행 가능한 jar 파일이있는 Java 웹 응용 프로그램.

  • 자바 소스가 변경
  • Gradle을 작업에 위에

    • 레지스터 감시자 작업
    • WEB-INF/lib 폴더
    • 배포 jar 파일
    • 복사 항아리에
    • 제거 jar 파일을 중지 바람둥이 WEB-INF/lib 폴더에 (모든 로그 파일 삭제)
    • 시작 tomcat

    정적 소스가 변경된 경우 다시 시작하려면 tomcat이 필요하지 않습니다. JSP, JS 등).

    솔루션

    나는 사무실에서 우리의 작업 방식에 대해 생각했다. 저의 동료이자 저는 Windows 시스템에서 프로그램을 작성하고 IDEA의 키 맵 구성을 사용하여 로컬에 설치된 Tomcat을 시작하고 중지합니다.

    나를 위해 가장 쉬운 방법은 Tomcat 서버의 경로를 참조하는 사용자 관련 CATALINA_HOME 시스템 환경 변수를 정의하는 것입니다.

    CATALINA_HOME = C:\Program Files\apache-tomcat-7.0.56 
    

    나는 ((재) 수동 IEDA을 통해 Tomcat을 시작)의 webapps 폴더에 WAR 파일을 컴파일 복사합니다 배포 작업을 정의합니다.

    task deploy(type: Copy) { 
        def WEBAPPS_HOME = System.getenv()['CATALINA_HOME'] + '/webapps' 
        from 'build/libs/app.war' into WEBAPPS_HOME 
        dependsOn war 
    } 
    

    아무도 build.gradle 파일 내부에 톰캣 경로를 변경해야하거나 자식 무시 추가 user.config 파일이 없습니다. 그러나 수동 Tomcat 처리가 마음에 들지 않으며 Mac에서 환경 변수를 사용하는 것이 일반적이지 않습니다.

    따라서 로컬 개발을 위해 임베디드 Tomcat 서버를 Gradle cargo plugin으로 검색하기로 결정했습니다. Benjamin Muschko (Gradleware Engineer)로부터 How to use local tomcat?...으로 연락하여 Cargo or Tomcat plugin...의 차이점을 설명합니다.

    이 플러그인의 설정은 매우 쉽습니다. 설명 할 필요가 없습니다.

    누구도 Tomcat을 소유 할 필요가 없으며 모든 사람이 동일한 버전의 서버로 작업 할 수 있습니다.

    나는 우리가 살기 좋은 건물을 만들기 위해 Gradle 래퍼의 힘을 Jenkins 작업 구성으로 사용합니다. wintods 배치 명령을 실행합니다.

    cd "%WORKSPACE%\app" 
    gradlew.bat clean build 
    

    답변

    -1

    저는 젠킨스를 사용하여 응용 프로그램의 배포를 관리합니다.

    이러한 작업에 도움이되는 여러 가지 플러그인과 함께 자신 만의 스크립트를 작성할 수 있습니다.

    젠킨스는 구성이 자유로 우며 자신의 필요에 맞게 조정할 수 있습니다.

    Jenkins URL

    +0

    물론, 당신의 생각은 릴리스 또는 nigthly 구축 매우 좋다. –