문제

빌드가 실행 된 후 Tomcat 서버에 배포하기 위해 Maven 목표를 구성하는 방법을 알고 있습니까? 나는 이것이 Maven-Tomcat-Plugin을 사용하여 가능하다는 것을 알고 있지만 Maven 1.1을 사용하는 반면 Maven 2에만 작동하는 것처럼 보입니다.

나는 현재 허드슨을 설정하려고 노력하고 있으므로 이것이 내 지속적인 인터레이스 단계의 일부가 될 것이며, 다음과 같이 실행되기를 바랍니다.

  1. 필요한 모든 구성 요소를 구축하십시오
  2. 전쟁을 구축하고 (로컬) 서버에 배치하십시오
  3. 셀레늄 테스트를 실행하십시오

이것에 대한 도움은 대단히 감사 할 것입니다.

감사.

도움이 되었습니까?

해결책 3

나는 이것을하는 가장 좋은 방법을 알아 냈습니다. 실제로 전쟁을 옮기기위한 Maven 목표를 작성하는 것은 매우 쉽습니다. 목표는 다음과 같이 작성 될 수 있습니다.

<goal name="deployWar" prereqs="buildWar">

    <echo message="+---------------------------------------------------+" />
    <echo message="installing war file to server" />
    <echo message="+---------------------------------------------------+" />

    <j:set var="deploy.dir" value="${server}/webapps" />

    <copy file="${maven.build.dir}/${pom.artifactId}.war"
        todir="${deploy.dir}" overwrite="true" />
</goal>

Server 변수는 Project.Properties 파일에서 결정할 수 있습니다. 또한 배포를 시도하기 전에 전쟁을 구축하기위한 사전 반품을 지정하십시오. 이것이 누군가를 돕기를 바랍니다!

다른 팁

솔직히 나는 당신의 프로젝트를 Maven 2를 사용하도록 리팩토링 할 것입니다. 마이그레이션 통증을 완화하는 데 도움이되는 몇 가지 가이드가 있습니다 (Google Maven 2 이주), 그리고 심지어도 있습니다 Maven-One-Plugin Project.xml을 변환하거나 Maven 2 용 Maven 1 플러그인을 패키지하십시오.

그렇게 할 수 없다면 사용할 수 있습니다. Maven 1 개 Ant 플러그인 전쟁을 Tomcat의 WebApps 디렉토리에 포장 한 후 복사합니다. Tomcat은 새로운 전쟁을 감지하고 뜨거운 전쟁을해야합니다.

나는 Maven의 플러그인에 대해 많이 알지 못하지만 작업 디렉토리를 정리하는 간단한 스크립트로 모든 것을 수행합니다 (Maven 플러그인이 작업 디렉토리를 정리하는지 모르겠습니다).

CALL mvn clean install
CALL rm C:\apps\tomcat\webapps\Foo.war 
CALL rm -rdf C:\apps\tomcat\webapps\foo
CALL rm -rdf C:\apps\tomcat\work\Catalina
CALL copy C:\webapps\workspace\Foo\target\Foo.war C:\apps\tomcat\webapps\Foo.war /y

(MS 스크립팅의 경우 -1)

요점은 일반적으로 작업 디렉토리를 정리하고 WebApps 디렉토리를 정리하고 Maven 1 ANT 플러그인은이 작업을 수행하지 않습니다 (내가 아는 한, 제공된 링크에서 읽습니다). Tomcat은 전쟁 파일을 폭발시킬 때 이러한 디렉토리에서 클래스 파일을 재현하기 위해 "추정"하지만 오랫동안 함께 일한 사람은 누구나 알고 있습니다. 항상 그런 것은 아닙니다.

따라서 플러그인이 이러한 디렉토리를 청소하지 않으면 제가 염려하는 한 쓸모가 없습니다. 제공된 것과 같은 저렴한 작은 스크립트를 작성하십시오. 2 분이 걸립니다.

WebAppDirectory는 Maven-War-Plugin이 폭발 전쟁을 배치하도록 구성 할 수 있습니다. 특별한 것이 필요하지 않습니다. Maven 설치 만 실행하십시오.

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
    <webappDirectory>path/to/server/deploy/dir</webappDirectory>
</configuration>
</plugin>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top