2014-12-11 12 views
2

Maven을 사용하여 응용 프로그램을 빌드하고 있습니다.
그래서 전쟁의 이름은 내가Tomcat의 WAR 버전 이름과 상관없이 컨텍스트 경로 설정

//localhost:8080/MyTest-1.00-SNAPSHOT1.0 

로 URL을 사용하게하지만 MYTEST 그겁니다는 MyTest-1.00-SNAPSHOT1.0로 WAR 이름을 배치 상황에 맞는 경로를 설정해야합니다 내가 톰캣에서 동일한를 배포 MyTest-1.00-SNAPSHOT1.0 .If 될 것입니다. 나는 URL이 될 것입니다 필요

// localhost를 : 8080/MYTEST

항상 WAR 이름

날이 시나리오를 달성하기 위해 제안 버전이나 등이있다하더라도.

+0

당신은 이름 MyTest.war –

+0

@atishshimpi 아니오 war 파일을 생성해야 그것은 쉽게 구분할 컨텍스트 경로 (나는이 플러그인을 사용한 적이)를 구성 할 수 있습니다. 배치 된 WAR 파일 이름에 버전과 스냅이 있지만, URL을 누를 때 컨텍스트 경로로 Mytest를 사용해야합니다. – Ramkumar

답변

2

가장 좋은 방법은 이름이 MyTest.war 인 war 파일을 직접 생성하는 것입니다.

<build> 
    <finalName>MyTest.war</finalName> 
    ... 
</build> 

편집 : 당신이 build 섹션에서 finalName을 사용할 수 있도록하려면 (코멘트에 따른 정보를 추가하는)

는 AFAIK 우리가 전쟁에 포함시킬 수있는 것도이 없다 파일 이름과 관련이없는 컨텍스트를 자동으로 설정합니다.

에서 : Apache Tomcat 7 Configuration Reference - The Context Container # Naming

autoDeploy 또는 deployOnStartup 동작이 호스트에 의해 수행 될 때, 웹 응용 프로그램의 이름 및 콘텍스트 경로 파일 (들)의 이름 (들)로부터 파생되는 웹 응용 프로그램을 정의합니다. 따라서 응용 프로그램에 포함 된 META-INF/context.xml에는 컨텍스트 경로가 정의되어 있지 않을 수 있으며 컨텍스트 이름, 컨텍스트 경로, 컨텍스트 버전과 기본 파일 이름 (이름에서 임의의 .war 또는. xml 확장자).

또한 말한다 :

당신이 WAR 파일 또는 다음 기본 파일 이름에 다음 옵션 중 하나를 관련되지 않은 컨텍스트 경로 를 사용하여 디렉토리를 배포 할 경우

사용해야합니다 이중 배포를 방지하기 위해 :

  • autoDeploydeployOnStartupserver.xml
  • 모든 Contexts을 정의
  • 호스트의 appBase 외부에서 WAR 및/또는 디렉토리를 찾아서 docBase 속성이있는 context.xml 파일을 사용하여 정의하십시오.

그러나 새로운 버전마다 구성을 업데이트해야한다는 단점이 있습니다.

Maven을 사용할 때, 전쟁을 전개하기위한 옵션은 Apache Tomcat Maven Plugin 일 수 있습니다. 에서

<project> 
    ... 
    <build> 
    ... 
    <plugins> 
     ... 
     <plugin> 
     <groupId>org.apache.tomcat.maven</groupId> 
     <artifactId>tomcat7-maven-plugin</artifactId> 
     <version>2.2</version> 
     <configuration> 
      <path>/mycontext</path> 
     </configuration> 
     </plugin> 
     ... 
    </plugins> 
    ... 
    </build> 
    ... 
</project> 

: Tomcat Maven Plugin Usage

+0

작성한 WAR 이름을 변경하고 싶지 않습니다. 버전 및 sanpshot.but에서와 마찬가지로 알 수 있습니다. 배포 후 나는 배포 된 전쟁에서 정적 컨텍스트 이름 이벤트를 사용해야합니다. – Ramkumar

+0

그러면 'autoDeploy'를 비활성화하고 컨텍스트를 직접 구성해야합니다. 그러나 새로운 버전이 나올 때마다 업데이트해야합니다. 'autoDeploy'가 활성화되면'context'는 파일 이름에서 파생됩니다. –

+0

autodeploy.I 사용하지 않고 meta.INF에 context.xml을 넣으려고했지만 – Ramkumar