We are Architect

젠킨스로 배우는 CICD 파이프라인: Maven(13) 본문

CI & CD/Jenkins

젠킨스로 배우는 CICD 파이프라인: Maven(13)

the best infra 2024. 12. 27. 19:35

 

* 메이븐이란? 

  • Maven은 Java 프로젝트 관리 도구로, 프로젝트의 빌드, 의존성 관리 그리고 배포를 자동화하고 효율적으로 관리할 수 있게 해 준다.

* 메이븐 설정 파일 

  • 메이븐은 setting.xml이라는 파일을 가지고 설정을 한다. 
  • Maven 동작을 사용자 환경에 맞게 커스터마이징 할 수 있게 하는 파일.
  • 해당 파일의 경로는 다음과 같다. C:\apache-maven-3.9.9\conf\setting.xml
    • 필자는 apache-maven-3.9.9 사용 중
  • 사용자 설정은 ~/.m2/settings.xml
    • 특정 사용자에게만 적용되는 설정 파일.
    • 사용자 환경에 맞는 설정을 제공.

 

* 메이븐 설정 파일 기본 구조

  • 로컬 저장소 위치 설정
    • 기본적으로 ~/.m2/repository를 사용하지만, 이 항목으로 경로를 변경할 수 있음. 
    • <localRepository>/path/to/local/repo</localRepository>
    • 원격 저장소 설정
      • Maven이 의존성을 다운로드할 저장소를 추가 정의.
        <repositories>
            <repository>
                <id>custom-repo</id>
                <url>https://custom-repo.example.com/maven2</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
        </repositories>
    • 프록시 설정
      • 회사 방화벽 환경에서 외부 네트워크 접근이 필요할 때 사용.
        <proxies>
            <proxy>
                <id>example-proxy</id>
                <active>true</active>
                <protocol>http</protocol>
                <host>proxy.example.com</host>
                <port>8080</port>
                <username>proxyuser</username>
                <password>somepassword</password>
                <nonProxyHosts>www.example.com|*.example.org</nonProxyHosts>
            </proxy>
        </proxies>
    • 프로필 설정
      • 환경별 다른 설정을 적용할 수 있도록 프로필과 활성 프로필을 정의.
        <servers>
            <server>
                <id>deployment-server</id>
                <username>deployuser</username>
                <password>deploypassword</password>
            </server>
        </servers>
    • 서버 인증 정보
      • 배포 또는 원격 저장소 접근을 위한 사용자 인증 정보를 설정
        <servers>
            <server>
                <id>deployment-server</id>
                <username>deployuser</username>
                <password>deploypassword</password>
            </server>
        </servers>