Java/Maven 6

[Troubleshooting] Spring Boot 2.3 + JEUS 로그 라이브러리 충돌 해결

Spring Boot 2.3 기반 프로젝트를 JEUS에 배포하는 과정에서 로그 라이브러리 충돌 문제가 발생했다.특이한 점은 로컬에서 src 폴더를 직접 구동할 때는 아무 문제가 없었다는 것이다. 빌드된 target 폴더를 실행하거나 JEUS에 배포할 때만 문제가 생겼다. 1. 문제 상황로컬 Smart Tomcat에서 소스(src) 폴더를 직접 지정해 실행하면 정상 동작했다.그런데 빌드 결과물인 target 폴더를 실행 대상으로 잡거나 운영 서버(JEUS)에 배포하면 Multiple SLF4J bindings 에러와 함께 기동이 실패했다. SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/.../logb..

Java/Maven 2026.05.05

[Maven] 외부망에서 .m2 복사했는데 내부망 빌드 실패할 때

외부망에서 빌드를 성공시킨 뒤 .m2/repository 폴더를 통째로 내부망에 복사했다.로컬에 라이브러리가 다 있으니 문제없을 거라고 생각했다. 그런데 내부망에서 빌드를 돌리자 외부 저장소(Central)에 접속을 시도하며 Dependency Resolution 에러가 발생했다.파일은 분명히 있는데, Maven이 계속 외부로 나가려 했다. 1. 원인: _remote.repositories 파일Maven은 라이브러리를 다운로드할 때 해당 파일이 어떤 원격 저장소에서 왔는지를 기록하는 메타데이터 파일을 함께 생성한다. 파일명은 _remote.repositories 또는 _maven.repositories다. 이 파일에는 출처 저장소 정보가 기록되어 있다. 예를 들어 중앙 저장소에서 받은 파일이라면 cen..

Java/Maven 2026.05.05

[Maven] clean / package / --offline / -U 실무 정리

Maven을 쓰다 보면 아래 명령어들을 습관처럼 사용하게 된다. mvn clean packagemvn clean package -Umvn clean package --offline 그런데 각각의 의미를 정확히 모르고 쓰면 문제가 생긴다.CI/CD에서 빌드가 실패하거나, 캐시가 꼬이거나, Nexus 이슈로 이어지는 경우가 실제로 있었다.이번 글은 실제 장애 케이스 기준으로 핵심만 정리한다. 1. clean – 빌드 초기화 이전 빌드 결과를 삭제하는 옵션이다.내부적으로는 target/ 디렉토리를 통째로 지운다.이게 왜 필요하냐면, 이전 빌드의 잔여물이 남아있으면 클래스 충돌이 발생할 수 있기 때문이다.실무에서는 CI 빌드에 거의 무조건 포함한다.mvn clean package 2. package – 실제..

Java/Maven 2026.05.05

[Maven] mvn clean install

1. mvn clean, install 명령어는? clean: 빌드시 생성된 모든 것들을 삭제해준다. Maven에서 자체 빌드 수명 주기 단계이다.(action이나 task로 생각할 수 있다.) 주로 빌드 결과물인 target폴더의 내용을 모두 삭제해준다. install: 프로젝트를 빌드하여 jar 실행 파일을 만들어주는 명령어이다. local repository에 패키지를 배포한다. 의존성 있는 다른 프로젝트에서 local repository에 존재하는 패키지를 참조할 수 있게 된다. 2. 메이븐 생명주기 (Maven lifecycle) (1). process-resources /src/main/resources 디렉토리를 에 생성한다. (2) complie 소스코드를 컴파일해서 클래스를 에 생성한다...

Java/Maven 2022.09.22

Maven repository 설정

1. 개요 maven을 이용하여 원하는 라이브러리를 손쉽게 프로젝트에 추가할 수 있다. 이 때, 라이브러리가 저장된 곳을 maven repository라고 한다. 1) maven local repository의 기본 경로 windows : c:\Users\사용자계정\.m2\repository linux : /home/사용자계정/.m2\repository 2) maven repository 경로 수정 방법 maven/conf 경로 안에 settings.xml 파일을 이용하여 maven repository 경로 수정이 가능하다. 사이에 경로를 추가하면 된다. (덧붙여 위의 설정파일을 보면 Default 경로가 ${user.home}/.m2/repository임을 알수 있다.) 3) 서버 메이븐 폴더 위치 찾..

Java/Maven 2022.08.03

Maven에 대해

1. Maven이란? Maven이란 자바용 프로젝트 관리 도구이다. (공식사이트: Apache Maven Project) Maven은 프로젝트의 전체적인 LifeCycle을 관리하는 관리도구이다. 프로젝트 객체 모델(Proejct Object Model:POM) 이라는 개념을 바탕으로 프로젝트의 의존성 관리, 라이브러리 관리, 프로젝트 LifeCycle 관리 기능 등을 제공한다. 플러그인을 기반으로 소스코드로부터 배포 가능한 산출물을 만들어내는 빌드 기능을 제공한다. 빌드(build) 란? 소스코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정 또는 그에 대한 결과물이다. 이를 좀더 쉽게 풀어 말하자면 우리가 작성한 소스코드(Java), 프로젝트에서 쓰인 각각의 파일 및 자원 ..

Java/Maven 2022.08.03
반응형