본문 바로가기
수입/테크

[24년 6월] Spring Framework Java 특정 파일만 컴파일하기

by 링크박사 2024. 6. 15.
728x90

Spring Framework Java 특정 파일만 컴파일하기
- 프로젝트 내 특정 파일만 컴파일 해야하는 이유
- 컴파일 방법

썸네일

꾸준히 서비스하고 유지보수하는 웹 서비스라면 큰 문제 없지만
용역 등으로 배포된 홈페이지 납품을 한 뒤 자바 파일 수정을 해야한다면?

단순 HTML 이라면 톰캣 내 html 파일을 열어 수정을 쉽게 할 수 있지만, 자바파일의 경우 웹서버엔 이미 컴파일된 class 파일만 업로드되어 있기 때문에 수정이 어렵다.
물론 최근 개발환경 툴들은 어느정도 class 파일도 돌려주기도 한다지만..쉽지 않은 것이 현실

나같은 경우 다행히 특정 자바 파일만 수정을 하면 되었고, 해당 파일은 .java가 있었다.
내가 직접 만든 프로젝트가 아니고 전체 소스코드는 없는 상황에서 특정 java 파일 내용만 수정한 뒤 다시 서버에 배포가 가능할까 의문이었지만 결과는 성공..!

나의 정확한 상태는 다음과 같다.
- 특정 자바파일 컴파일이 필요함
- 해당 자바파일에서 여러 다른 파일들을 import 하고 있음
- 다른 자바 파일들은 없고 class만 있음

스프링 실제 프로젝트 경로에 맞춰 폴더를 생성하고 실제로 컴파일 하려는 자바에서 참조 중인 자바 클래스 파일들을 이동시켜주었다. 
javac 명령어로 자바파일을 컴파일할 때, -cp 옵션으로 참조하려는 클래스 파일 경로를 적어주면 되는데
이 때, 클래스 파일들이 있는 가장 상위 폴더의 절대경로를 입력해주니 하위 폴더 내 파일들이 모두 한번에 적용됐다. 

또한, 해당 프로젝트의 개발당시 환경도 중요한데 특히 자바 버전이 다른 경우 컴파일한 클래스 파일을 교체했을 경우 오류가 발생한다.. 
나 같은 경우 현재 PC는 자바 17이지만 컴파일해야할 자바는 1.7버전이라 오라클에서 다시 다운로드 받아 환경변수 변경 후에 컴파일해주었다. 

우리 회사도 스프링 기반이지만 늘 메이븐으로 패키징하다보니 특정 파일만 컴파일이 될지 의문이었는데...
다행히 큰 문제 없이 해결!

그렇지만.. 컴파일하려는 자바 파일 내 참조하는 다른 파일들이 많거나 lombok 등 기타 라이브러리들도 여럿 사용한다면 상당히 귀찮고 복잡한 과정일 것 같다.

728x90
반응형

댓글