폐쇠망에서 maven에 라이브러리 추가하고 빌드하는 방법
인터넷이 안되는 환경이라면 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이 존재한다.
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에 있어야함.