일반적으로 Maven은 기본적으로 아래와 같은 규칙에 따라 WAR 파일의 이름을 생성된다.
<artifactId>-<version>.war
나는 따로 배포파일의 이름을 설정 하지 않았고, 규칙에 따라 "myBoard-1.0.0-BUILD-SNAPSHOT.war"라는 이름의 WAR 파일이 생성되었다. 이후 tomcat에 war파일을 배포하고 프로젝트를 테스트 하려고 보니 ip:port/war파일명 으로 접속해야 했다. 그래서 192.168.56.102:8080/myBoard-1.0.0-BUILD-SNAPSHOT/ 라는 경로로 접속 해야 했다.
Tomcat은 기본적으로 WAR 파일의 이름이 "ROOT.war"일 때에는 WAR 파일의 이름을 URL에 포함하지 않고도 바로 애플리케이션의 루트 경로로 접근할 수 있도록 설정되어 있다. 톰캣의 설정파일에 경로를 추가해도 되지만, "ROOT.war" 로파일을 수정하여 "http://192.168.56.102:8080/"으로 접속 했다.
WAR 파일의 이름이 ROOT.war가 아닐경우에는 Tomcat 루트 경로에서 conf 폴더의 server.xml 설정파일을 수정한다.
cd [Tomcat root]/conf/server.xml
vi server.xml
<Context path="/home/tomcat6adm/apache-tomcat-8.5.61/webapps" docBase="jpetstore.war" reloadable="false" > </Context>
#<Context path="[경로]" docBase="[파일이름]" reloadable="false" > </Context>
1. ROOT.war
Maven의 POM 파일에서 WAR 파일 이름을 직접 지정하려면
플러그인 섹션에 <warname>을 추가하고, 이름을 ROOT로 한다. ROOT.war로 해주면, Tomcat은 실행할때 ROOT 경로를 만들어 그곳에 해당 war를 셋팅하고 서비스를 띄우게 된다.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
<configuration>
<warName>ROOT</warName>
</configuration>
</plugin>
</plugins>
</build>
2. WAR파일 생성
1. plugin에 WAR파일의 이름을 설정하고, 우클릭 후 Run As > Maven install 을 하거나, Maven Build를 한다.
2. Build 할 프로젝트 내용작성
Name: package
Base directory > Workspace.. > 해당 프로젝트
Goals: clean package
clean: 이전 빌드에서 생성된 모든 파일을 제거합니다.
package: 프로젝트를 패키징하고 JAR, WAR 또는 다른 형식의 아티팩트를 생성
으로 작성한 후 Apply
이후 war 빌드할때 우클릭> maven configueations.. > 내가 추가한 build를 run해주면된다.
3. 빌드 결과 확인
target디렉토리에 ROOT.war 가 생성되었다.
3. WAR 파일 tomcat 배포
-