반응형
넥서스 리파지토리의 서버가 존재한다는 전제하에서 진행합니다.
넥서스 설정은 아래의 포스팅을 확인해주세요.
넥서스 설정 : https://luvris2.tistory.com/399
폐쇄망(내부망)에서 라이브러리 다운 받기 : https://luvris2.tistory.com/417
매이븐 프로젝트 업로드 준비
(Maven Project Prepare to Upload )
- 예시) 업로드를 위해 여러 라이브러리 의존성 추가
- pom.xml
<dependencies>
<!-- https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf -->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.31</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.11</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<scope>provided</scope>
</dependency>
</dependencies>
- 추가된 라이브러리 확인
매이븐 리파지토리 설정
(Maven Repository Setting)
setting.xml 파일 설정
- 메이븐 리파지토리 폴더(.m2)에 setting.xml 파일 열기
- 파일이 없다면 파일 생성
- setting.xml
<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">
<servers>
<server>
<!--
<id> 설정한 넥서스 리파지토리 ID </id>
<username> 넥서스 리파지토리에 접근 가능한 유저 아이디 </username>
<password> 유저의 비밀번호 </password>
-->
<id>hostedRepoTest-release</id>
<username>hostedRepoTestUser</username>
<password>admin123</password>
</server>
<server>
<!--
<id> 설정한 넥서스 리파지토리 ID </id>
<username> 넥서스 리파지토리에 접근 가능한 유저 아이디 </username>
<password> 유저의 비밀번호 </password>
-->
<id>hostedRepoTest-snapshot</id>
<username>hostedRepoTestUser</username>
<password>admin123</password>
</server>
</servers>
</settings>
설정한 setting.xml 파일 적용
- (스프링에서) Window - Preferences
- Maven - User Settings - User Settings Browse...
- setting.xml 파일이 위치한 디렉토리로 이동 - 열기
- setting.xml 파일이 적용되었는지 확인 후 - Apply and Close
매이븐 프로젝트 설정
(Maven Project Setting)
pom.xml 파일 설정
distributionManagement
- 빌드 프로세스 전체에 생성된 아티팩트 및 지원 파일의 배포를 관리
- 프로젝트가 배포될 때 원격 저장소에 도달하는 위치와 방식을 지정
- deploy 실행시 배포되는 위치
- 즉, 배포를 위한 것
pom.xml 코드
<distributionManagement>
<snapshotRepository>
<!-- 스냅샷 리파지토리 설정
<id>설정한 넥서스 리파지토리</id>
<name>리파지토리 이름</name>
<url>리파지토리 URL</url>
-->
<id>hostedRepoTest-snapshot</id>
<name>hostedRepoTest-snapshot</name>
<url>http://localhost:8081/repository/hostedRepoTest-snapshot/</url>
</snapshotRepository>
<repository>
<!-- 릴리즈 리파지토리 설정
<id>설정한 넥서스 리파지토리</id>
<name>리파지토리 이름</name>
<url>리파지토리 URL</url>
-->
<id>hostedRepoTest-release</id>
<name>hostedRepoTest-release</name>
<url>http://localhost:8081/repository/hostedRepoTest-release/</url>
</repository>
</distributionManagement>
- 참고) 모든 소스 코드
더보기
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test1</groupId>
<artifactId>example</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<distributionManagement>
<snapshotRepository>
<id>hostedRepoTest-snapshot</id>
<name>hostedRepoTest-snapshot</name>
<url>http://localhost:8081/repository/hostedRepoTest-snapshot/</url>
</snapshotRepository>
<repository>
<id>hostedRepoTest-release</id>
<name>hostedRepoTest-release</name>
<url>http://localhost:8081/repository/hostedRepoTest-release/</url>
</repository>
</distributionManagement>
<name>test Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf -->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.31</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.11</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>example</finalName>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
배포 (Deploy)
- Run As - Maven build
- Base directory : Workspace를 눌러서 해당 프로젝트 선택
- Goals : clean deploy 입력
- User settings : File System을 눌러서 작성한 setting.xml 파일 경로 입력
- Run
- 업로드(배포) 확인
반응형