Jenkins Maven 설정
Jenkins 파이프라인에서
mvn clean package를 실행하려면 Jenkins 서버에 Maven이 설치되어 있어야 합니다. 어디에 설치하고 어떻게 연동할까요?
Maven 은 Java 프로젝트의 빌드, 의존성 관리, 패키징을 담당하는 빌드 도구입니다. Jenkins에서 Maven을 사용하려면 서버에 Maven을 설치한 뒤, Jenkins의 Global Tool Configuration에 경로를 등록해야 합니다.
Maven 설치
1. 설치 여부 확인
mvn --version
이미 설치되어 있다면 버전 정보가 출력됩니다. 설치되어 있지 않은 경우 아래 절차를 따릅니다.
2. Maven 다운로드 및 설치
# 다운로드
wget https://archive.apache.org/dist/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz
# /opt 디렉토리에 압축 해제
sudo tar -xvf apache-maven-3.9.9-bin.tar.gz -C /opt
# 심볼릭 링크 생성 (버전 업그레이드 시 링크만 변경하면 됨)
sudo ln -s /opt/apache-maven-3.9.9 /opt/maven
3. 환경 변수 설정
/etc/profile.d/maven.sh 파일을 생성하여 시스템 전체에서 Maven을 사용할 수 있도록 설정합니다.
sudo vi /etc/profile.d/maven.sh
export JAVA_HOME=/app/jdk-17 # JDK 설치 경로
export M2_HOME=/opt/maven
export MAVEN_HOME=/opt/maven
export PATH=${M2_HOME}/bin:${PATH}
# 실행 권한 부여 및 적용
sudo chmod +x /etc/profile.d/maven.sh
source /etc/profile.d/maven.sh
4. 설치 확인
mvn --version
정상 설치 시 아래와 같이 출력됩니다.
Apache Maven 3.9.9
Maven home: /opt/maven
Java version: 17.0.x, vendor: Oracle Corporation
Jenkins에서 Maven 설정
Maven Configuration (settings.xml 경로)
Jenkins가 Maven 빌드 시 사용할 settings.xml 파일 경로를 지정합니다.
- Manage Jenkins > Tools > Maven Configuration 이동
- 설정 방식 선택:
| 설정 방식 | 설명 |
|---|---|
| Use Default Settings | Maven 기본 settings.xml 사용 |
| Settings file in filesystem | 커스텀 settings.xml 경로 직접 지정 |
Settings file in filesystem 선택 시 File Path에 아래와 같이 입력합니다.
/opt/maven/conf/settings.xml
Nexus와 같은 사설 리포지토리를 사용하는 경우,
settings.xml에 인증 정보를 추가해야 합니다. 자세한 내용은 Nexus 설정 포스트를 참고하세요.
Maven installations (Maven 실행 경로)
Jenkins가 빌드 시 사용할 Maven 실행 파일 경로를 등록합니다.
- Manage Jenkins > Tools > Maven installations 이동
- Add Maven 클릭
- 아래 항목 입력:
| 항목 | 설명 | 예시 |
|---|---|---|
| Name | Jenkins 내에서 사용할 별칭 | Maven3 |
| MAVEN_HOME | Maven 설치 경로 | /opt/maven |
- Save 클릭
트러블슈팅
| 증상 | 원인 | 해결 방법 |
|---|---|---|
mvn: command not found | 환경 변수 미적용 | source /etc/profile.d/maven.sh 실행 |
| Jenkins 빌드에서 Maven을 찾지 못함 | Maven installations 미등록 | Jenkins Tools에서 Maven 경로 등록 |
| 의존성 다운로드 실패 | settings.xml 미설정 또는 네트워크 문제 | Maven Configuration에서 settings.xml 경로 확인 |
주의할 점
심볼릭 링크 미사용
Maven을 /opt/apache-maven-3.9.9에 직접 설치하고 이 경로를 Jenkins에 등록하면, 버전 업그레이드 시 Jenkins 설정도 함께 변경해야 합니다. /opt/maven으로 심볼릭 링크를 만들어두면 링크만 변경하면 됩니다.
Jenkins 서비스 계정과 환경 변수
/etc/profile.d/maven.sh에 환경 변수를 설정해도 Jenkins 서비스(systemd)에서는 적용되지 않을 수 있습니다. Jenkins는 별도 프로세스로 실행되므로, Maven installations에 절대 경로를 직접 등록하는 것이 확실합니다.
정리
| 항목 | 설명 |
|---|---|
| Maven 설치 경로 | /opt/maven (심볼릭 링크 권장) |
| 환경 변수 | /etc/profile.d/maven.sh에 M2_HOME, PATH 설정 |
| Jenkins settings.xml | Manage Jenkins > Tools > Maven Configuration |
| Jenkins Maven 경로 | Manage Jenkins > Tools > Maven installations |
| Nexus 연동 시 | settings.xml에 인증 정보 추가 필요 |