Jenkins에서 자동 배포할 때 편리하게 하기 위해 pom.xml에 아래 코드를 추가한 뒤로 원인을 알 수 없는 오류가 났다.
2일동안 찾으며 검색해서 나오는 구글 글을 다 들어갔지만 정확한 원인은 찾지 못했다..
<packaging> war </packaging>
오류 원인이 나오지도 않고
" Artifact myLunch_2:war exploded: Error during artifact deployment. See server log for details."
이런 오류가 났고, 정확한 원인은 아직 찾지 못했지만 깃 커밋을 하나하나 거슬러 올라가면서 해결 방법은 찾았다.
pom.xml에 war packaging 코드를 추가하고 project.iml 파일을 열면
root url이 없는 파일로 설정된다. 위 root url을 아래와 같이 바꾸자
<root url="file://$MODULE_DIR$/web" relative="/" />
새로운 프로젝트를 만든 뒤 war packaging 설정을 추가하고 위처럼 진행하면 오류가 사라지지만, 이미 진행중인 프로젝트에서는 여전히 오류가 남아있을 수 있다.
내 경우엔 위처럼 바꿔도 오류가 났었고 web.xml에 문제가 있었다.
context.xml 위치를 선언해주는 부분에서 평소 경로 그대로 /WEB-INF/applicationContext.xml 이렇게 되어있었지만, 이상하게 오류가 났다.
web/WEB-INF/applicationContext.xml로 바꾸면 오류가 사라지지만 실행이 되지 않고 해결방법을 찾지 못해 깃 허브에 백업해둔 web.xml을 붙여넣었다..
젠킨스 설정은 나중에 업로드 할 예정
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin -->
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.1</version>
</dependency>
<!-- build가 있으면 안에 plugins 넣고 없으면 dependencies 밑에 만들기 !-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<webXml>web\WEB-INF\web.xml</webXml>
</configuration>
</plugin>
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin -->
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source />
<target />
</configuration>
</plugin>
</plugins>
</build>