본문 바로가기
#IT 업무노트

[Cluster 전환 #5] MAVEN POM 파일 라이브러리 가져오기(Local, Url, Maven 저장소)

by 꾸미라기 2024. 6. 27.
반응형
SMALL
Maven은 Java 프로젝트를 관리하기 위한 강력한 빌드 도구로, 프로젝트의 의존성을 효율적으로 관리할 수 있게 해줍니다.POM(Project Object Model) 파일은 Maven 프로젝트의 핵심 파일로, 프로젝트에 대한 정보를 담고 있으며 빌드 설정, 플러그인, 그리고 라이브러리(의존성)를 정의하는 데 사용됩니다.

 

2024.04.17 - [#IT 업무노트] - [Cluster 전환 #4] 공통API(사내API) 사용하기

 

[Cluster 전환 #4] 공통API(사내API) 사용하기

Legacy 시스템 컨테이너 전환을 진행하면서 기존 SMTP 서버 폐기가 필요하기 때문에 사내에서 제공해주는 공통API를 사용하는 방법에 대해 알아보고자 합니다. 제가 몸담고 있는 회사를 기준으로

ggumidr.com

2024.04.17 - [#IT 업무노트] - [Cluster 전환 #3] kubectl 실행 환경 구성하기

 

[Cluster 전환 #3] kubectl 실행 환경 구성하기

kubectl을 사용하여 Kubernetes 클러스터와 상호작용하기 위해 환경을 구성하는 것은 중요합니다. 환경 구성에는 일반적인 아래의 단계가 포함되며 회사에서는 어떻게 구성하는지 공유드리고자 합

ggumidr.com

 

 

1. 라이브러리 참조하는 이유

(1) 이미 존재하는 라이브러리를 사용하면 중복 작업을 피하고 개발 시간을 절약
(2) 검증된 외부 라이브러리를 사용하면 코드의 안정성과 신뢰성을 높임
(3) Maven을 통해 의존성을 관리하면, 라이브러리의 업데이트 및 버전 관리를 쉽게 할 수 있어 유지보수가 용이
(4) 표준화된 방식으로 라이브러리를 추가하고 관리할 수 있어 개발 생산성이 향상
 

2. 라이브러리 참조하는 방법 (pom파일 작성)

컨테이너 전환 대상 서비스는 솔루션사에서 제공된 library를 참조해야 하기 때문에 각 jar의 로컬 위치를 지정(2-1)하는 방식을 사용한다.

로컬 레포지토리는 groupId, artifactId, version depth 를 사용하여 폴더 형태로 만들어야 하기 때문에 제외 했다.
 
(1) Maven Central Repository에서 라이브러리 추가
Maven Central Repository에서 필요한 라이브러리를 검색한 후,
해당 라이브러리의 groupId, artifactId, version 정보를 POM 파일에 추가합니다. 예를 들어, Google Gson 라이브러리를 추가하는 방법은 다음과 같습니다
<dependencies>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.9</version>
    </dependency>
</dependencies>
 
(2) 로컬 레포지토리 구성하기
<repositories>
     <repository>
         <id>mylibrary</id>
         <url>file:/app/library</url>
     </repository>
</repositories>
 
(2-1) 각 jar파일의 위치를 지정하기
<project.lib.path>/app/library</project.lib.path>
<dependency>
    <groupId>ipmslibrary</groupId>
    <artifactId>commons-codec-1.3</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>${project.lib.path}/commons-codec-1.3.jar</systemPath>
</dependency>

 

jar파일이 많을 경우 GPT를 활용하면 편리하다. 아래는 사용했던 명령어
아래 jar 목록들을 아래 형태의 dependency로 만들어줘
    <dependency>
        <groupId>ipmslibrary</groupId>
        <artifactId>a-b-3.2.9</artifactId>
        <version>1.0</version>
        <scope>system</scope>
        <systemPath>${project.lib.path}/a-b-3.2.9.jar</systemPath>
    </dependency>          

groupId, version, scope는 고정 artifactId는 jar명, systemPath는 ${project.lib.path}/ 고정 뒤에 jar포함 명칭
a-1.1.jar
b.jar
c-2.7.7.jar
 
(3) setting.xml 사용하기
본적으로 Maven은 사용자 홈 디렉토리의 .m2/repository 폴더를 로컬 저장소로 사용합니다. 예를 들어, Windows에서는 C:\Users\Username\.m2\repository 경로를 사용합니다.
로컬 저장소의 위치를 변경하고 싶다면, Maven 설정 파일(settings.xml)을 수정해야 합니다. settings.xml 파일은 기본적으로 사용자 홈 디렉토리의 .m2 폴더에 있습니다.
settings.xml 파일을 열고, <localRepository> 태그를 추가하여 원하는 경로를 지정합니다. 예를 들어, 로컬 저장소를 D:/maven-repo로 변경하려면

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <localRepository>D:/maven-repo</localRepository>
</settings>
 
(4) url 사용하기
<repositories>
    <repository>
        <id>my-external-repo</id>
        <url>http://my-external-repo.example.com/maven2
    </repository>
</repositories>
반응형