Programing/Maven

Maven Dependency | Packaging VS (Tomcat)Server Deploy

BeomJun.Kwon 2022. 8. 12. 14:51

 

Maven Dependency | Packaging  VS  (Tomcat)Server Deploy

 

 

pom.xml Dependency에 설정되어 있는 것들은 Maven Packaging과 (Tomcat)Server Deploy 할 때 다르게 반영되는 부분이 있다. 아래의 진행 사항은 Window,Tomcat, Maven, Eclipse, Nexus 를 사용하였고 필자는 개발을 진행하는 와중에 있었던 내용을 작성했다.

 

 

※ 확인 
아래의 내용은 원격 저장소에 프로젝트가 있고 동일 프로젝트가 개발환경에도 있다면, Maven dependency를 사용하여 각각 Maven packaging에서의 lib 파일과 Server Deploy lib 파일의 생성 기준이다.

( 주로 사내 원격저장소에 해당 프로젝트를 배포 및 사용 시 발생 )

 

 

Maven Package

  • Maven Lifecycle 중의 package 단계
  • 실행 가능한 바이너리 파일들을 jar, war 같은 배포용 압축 파일로 묶음
  • (Eclipse) target에 배포용 압축 파일 생성

 

 

(Tomcat)Server Deploy

  • Server에서 사용하기 위해 임시로 폴더를 생성하여 프로젝트 바이너이러 파일을 임시로 보관
  • Publish, Clean 으로 임시 폴더에 배포 및 재생성
  • Add and Remove로 원하는 프로젝트 배포

  • default 임시 배포 장소
    • {workspace}\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\{deploy_project}

 

 

배포용 압축 파일과 임시 배포 폴더를 확인해보면 기본적으로 둘 다 같은 구조 및 바이너리 파일들이 들어있다.

pom.xml dependencies에 지정되어있는 각각의 lib 파일들도 들어가있는것을 확인 할 수 있다.

이때 lib 파일소스를 들여다 보면 packaging 및 server deploy 시에 다른점을 발견 할 수 있다.

 

 

예를 들어,

참조되는 프로젝트

 

위와 같은 'test' 프로젝트가 원격저장소에 배포되어 있고 내 개발환경에도 해당 프로젝트가 있다고 가정하면

( 주로 CICD로 인해 해당 프로젝트가 git, repo 둘다 올라가 있어서 일어난다 )

참조하는 프로젝트

 

이와 같은 형식으로 각각 packaging, server deploy 한다고 가정하면 lib 폴더 안으로 test.jar 파일이 생성된다

이때 각각의 폴더 안에 test.jar 파일을 디컴파일 해보자.

( packaging은 target 폴더, server deploy는 임시 배포 폴더 )

물론 저장소에 배포 된 뒤로 test 프로젝트가 수정사항이 없다면 두개의 jar파일은 동일 할 것이다.

하지만 조금이라도 수정한 부분이 있다면 그 부분에 대해서 차이가 난다.

 

 

확인해보면

- packaging 된 압축파일의 .jar파일은 원격저장소의 소스가 적용되어 있을것이고

- server deploy 된 .jar 파일은 현재 개발환경의 소스 파일이 적용되어 있을것이다.

이 처럼 우선순위가 다르게 되는것을 확인 할 수 있다.

물론 server deploy 할 때 개발환경에 해당 프로젝트가 없다면 원격저장소의 프로젝트를 가져다가 lib 파일로 생성한다.

 

 

server deploy 할 때,

Eclipse에서 개발환경 프로젝트로 생성되는지 원격저장소의 프로젝트로 생성되는지 구분하는 방법은 pom.xml의 Dependencies 탭의 목록을 확인해보면 폴더 모양으로 표시되어 있으면 개발환경의 프로젝트를 사용하는 것이다.

 

 

 

 

 

 

 

 

 

개인적인 경험을 바탕으로 서술하였으니 혹시라도 틀린점을 발견하신 능력자님이 있으시다면 답글 부탁드립니다.

 

 

 

 

 

 

 

'Programing > Maven' 카테고리의 다른 글

(Eclipse) Maven 속성 및 설정  (0) 2022.10.03
Maven Build vs Java Project Build(eclipse)  (0) 2022.07.07
Maven Eclipse Setting  (0) 2022.07.07
Maven LifeCycle  (0) 2022.06.29