1. Maven Archetype
Archetype이란 Maven(Spring, Spring boot)에서 나만의 template/boilerplate를 제작하는 방법이다.
2. 기본세팅
2.1 Setting.xml
- Archetype 사용하기 위해선 setting.xml 파일이 필요하다.
- setting.xml 파일이 없다면, 내문서의 .m2 폴더에 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">
<localRepository>${user.home}/.m2/repository</localRepository>
</settings>
2.2 Maven
https://maven.apache.org/download.cgi
- Archetype은 기본적으로 Maven명령어를 사용하기 때문에 Maven이 설치되어 있어야 한다.
- 위 사이트에 접속하여 .zip 파일을 다운받아 적절한 위치에 압축을 해제한 뒤 고급시스템 설정의 path에
압축 해제한 경로에 맞게(Ex : C:\apache-maven-3.6.3\bin) path를 추가한다.
※ Spring/Spring Boot는 Maven 설치안하는데 Maven이 되는데, 그 이유는 Spring/Spring Boot의 경우 프로젝트를 생성하게 되면, 자동으로 mvnw.cmd 라는 파일이 생기기 때문이다.
3. Archetype 사용방법
3.1 미리 생성한 프로젝트에서 생성 후 로컬배포
- Spring/Sprin Boot에서 나만의 template/boilerplate를 제작하였다면, IDE Terminal에서 프로젝트 Root 경로에 아래의 명령어를 입력한다
mvn archetype:create-from-project
- 명령어를 입력하게되면 target/generated-sources/archetype 폴더가 생성된다. 생성한 폴더에 접근한다.
cd target/generated-soruces/archetype
- IDE Terminal에서 mvn install 또는 mvn deploy를 실행한다.
mvn install
- mvn install은 local 저장소에 배포를 하며, .m2 폴더에 저장된다.
- mvn deploy는 maven 저장소에 배포하는 것이며, 사설 nexus 저장소에 배포가능하다.
- mvn archetype:generate -DarchetypeCatalog=local 명령어를 통해 정상적으로 등록되었는지 확인한다.
mvn archetype:generate -DarchetypeCatalog=local
- mvn install 했으나 로컬에 배포되지 않은 경우 mvn archetype:update-locate-catalog 를 입력한다.
mvn archetype:update-locate-catalog
3.2 사설 저장소에 배포
- mvn deploy로 사설 nexus에 등록할 경우 target/generated-soruces/archetype 에 있는 pom.xml에 아래와 같이 등록한다.
<distributionManagement>
<repository>
<id>test-releases</id>
<name>Releases Repository</name>
<url>http://127.0.0.1/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>test-snapshots</id>
<name>Snapshots Repository</name>
<url>http://127.0.0.1/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
- 만약 사설 저장소에 권한이 필요해 계정 및 비밀번호가 필요하면, .m2 폴더의 settings.xml에 계정과 비밀번호를 등록한다. server에 들어가는 id 와 위 xml의 id가 같아야한다.
<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>${user.home}/.m2/repository</localRepository>
<servers>
<server>
<id>test-releases</id>
<username>admin</username>
<password>testpw</password>
</server>
<server>
<id>test-snapshots</id>
<username>admin</username>
<password>testpw</password>
</server>
</servers>
</settings>
- 등록 후 target/generated-soruces/archetype 경로에서 mvn deploy를 하면 사설저장소에 저장된다.
- 사설 저장소에 있는 것을 사용 및 확인하고 싶다면 setting.xml에 mirror를 작성해줘야 한다.
<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>${user.home}/.m2/repository</localRepository>
<mirrors>
<mirror>
<id>test-snapshots-repo</id>
<mirrorOf>*</mirrorOf>
<name>Mirror.</name>
<url>http://127.0.0.1/repository/maven-snapshots/</url>
</mirror>
</mirrors>
<servers>
<server>
<id>test-releases</id>
<username>admin</username>
<password>testpw</password>
</server>
<server>
<id>test-snapshots</id>
<username>admin</username>
<password>testpw</password>
</server>
</servers>
</settings>
- 등록 후 mvn archetype:generate 하면 등록한 archetype 항목이 나올것이다.
4. 프로젝트 생성
- mvn archetype:generate 명령어 후 플젝 선택시 입력하는 것들은
target/generated-soruces/archetype 폴더의 pom.xml에 있는
- groupid
- artifactId
- version
이며, 똑같이 입력해주면 프로젝트가 생성된다.
'Develop > Spring Boot' 카테고리의 다른 글
Spring Boot Security form login (0) | 2021.01.19 |
---|---|
Kotiln Spring Boot Webflux r2dbc(MySQL) (0) | 2020.06.04 |
Kotlin Spring Boot Webflux (Eclipse) (0) | 2020.04.26 |
Spring boot .ebextensions nginx 및 기본 사용방법 (AWS Elastic Beanstalk) (8) | 2019.02.12 |
Spring boot ElasticBeanstalk 환경변수설정시 주의사항 (0) | 2019.02.12 |