Backend

폐쇠망에서 maven에 라이브러리 추가하고 빌드하는 방법

dev_SiWoo 2023. 9. 13. 11:34

인터넷이 안되는 환경이라면 maven에서 원격으로 신규라이브러리(artifact)들을 추가하거나 업데이트 할 수 없다.

 

따라서 Maven을 처음 설치했을 떄, mavend의 default local repository에 직접 추가할 라이브러리(artifact)를 

jar 파일 형태로 넣어준다음 설치해주어야 한다.

 

1. local repository 설정

Maven이 처음 설치될 때 local repository는 windows 개발환경이라면

아래의 이미지 처럼 C:\Users\로그인사용자\ .m2\ 경로에 settings.xml파일이 존재한다. 

 

그게 아니라면 Maven 설치 압축파일을 푼곳에 config 디렉토리에 settings.xml이 존재한다.

Windows 개발환경

 

Maven 설치 파일의 config

 

Maven 설정파일인 setting.xml 파일을 열어보면  기본적으로 아래와 같이 작성되어 있으며

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <mirrors>
        <mirror>
            <id>maven-default-http-blocker</id>
            <mirrorOf>external:dont-match-anything-mate:*</mirrorOf>
            <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
            <url>http://0.0.0.0/</url>
        </mirror>
    </mirrors>
</settings>

 

위 설정파일을 보면 <localRepository>C:\my_repo</localRepository> 와 같이 별도로 local repository를 설정해주지 않았기에 .m2/repository 디렉토리가 local repository가 된다.

 

 만약 별도의 local repository를 설정하고싶다면

<localRepository>C:\my_repo</localRepository>와 같이 작성하여 추가해주도록 한다.

<?xml version="1.0" encoding="UTF-8"?>
<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>C:\my_repo</localRepository>
    
   <mirrors>
        <mirror>
            <id>maven-default-http-blocker</id>
            <mirrorOf>external:dont-match-anything-mate:*</mirrorOf>
            <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
            <url>http://0.0.0.0/</url>
        </mirror>
    </mirrors>
</settings>

 

2. jar 파일이동

 만약 별도의 local repository 경로를 설정해주지 않았다면 .m2/repository 디렉토리에 추가해줄 jar를 넣어주도록 한다. 

별도로 설정했다면 해당 설정경로에 넣어준다.

 

 

3. Local Maven Repository에 jar파일 추가하기

jar파일을 Local Maven Repository에 추가하려면 mvn install:install-file 명령어를 사용해야한다.

만약 spring-security-core-6.0.6.jar 파일을 추가한다고한다면

mvn install:install-file -Dfile=path-to-your-jar/spring-security-core-6.0.6.jar 

-DgroupId=org.springframework.security 

-DartifactId=spring-security-core 

-Dversion=6.0.6 -Dpackaging=jar

위와 같은 명령어를 실행한다.

 

 

다음 pom.xml 파일에서 해당 의존성을 참조하도록 아래와 같이 추가한다.

<dependencies>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-core</artifactId>
        <version>6.0.6</version>
    </dependency>
</dependencies>

 

4. 메이븐 빌드

  폐쇠망에서 Maven을 실행하여 빌드할 때는 오프라인 모드로 실행해야한다.

 Terminal에서 아래와 같은 명령어를 실행한다.

mvn clean install -o

 

 # mvn : 메이븐을 실행하는 명령어

 # clean : maven의 clean 라이프사이클 실행(이전에 빌드 될 때 생성된 class, jar 등 파일을 삭제

 # -o(offline) : Maven에게 인터넷 연결없이 작동하도록 지시하여 모든 필요 종속성들이 로컬 repository에 있어야함.