tools & libs/빌드툴(maven,gradle)

[maven]arche type 만들기

  • -

이번 포스트에서는 maven의 arch type을 생성하는 방법에 대해 살펴보자.

 

기존 프로젝트 기반으로 arche type 만들기

ㄷ새로운 버전의 STS에서는 더 이상 legacy 방식의 spring 프로젝트를 생성할 수 없고, 상황에 따라서 필요하긴 하고, 기존의 maven arch type들은 너무 old 해서 원하는 형태로 한번 만들어보기로 한다.

원하는 프로젝트 작성

프로젝트와 상관 없이 처음 할 일은 [사용자_홈]\.m2에 settings.xml 파일을 작성해줘야 한다.

<?xml version="1.0"?>

<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 
          http://maven.apache.org/xsd/settings-1.0.0.xsd" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xmlns="http://maven.apache.org/SETTINGS/1.0.0">

<localRepository>C:/Users/itsme/.m2/repository</localRepository>

</settings>

여기서 중요한 것은 당연히 localRepository이다. 나중에 생성한 arche type이 설치될 경로이다.

 

다음으로 template으로 작성할 프로젝트를 생성해준다. 필자의 경우 Sample 이라는 이름으로 프로젝트를 생성하였다.

여기서 추가로 필요한 것은 pom.xml 파일에 maven-archetype-plugin을 추가해야 한다.

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-archetype-plugin</artifactId>
	<version>3.1.2</version>
</plugin>

 

archetype 생성

이제 project 기반으로 arche type을 만들어보자.

프로젝트 root로 이동하여 다음 명령으로 archetype을 생성한다.

mvn archetype:create-from-project

명령이 잘 동작하면 [Project_Root]/[target]/[generated-sources] 아래에 archetype이라는 폴더가 생성되고 필요한 내용들이 컴파일된 것을 볼 수 있다.

여기서 윈도우에서 chcp 같은 명령어를 못찾아서 오류가 발생했는데 C:\Windows\System32\chcp.com 을 path에 추가하니 별 문제 없이 진행되었다.

 

로컬 영역에 설치 해보기

다음으로 작성된 arche 타입을 local repository에 추가해주어야 한다.

먼저 arche type이 생성된 [project_root]\target\generated-sources\archetype로 이동한 후 mvn install 명령으로 arche type을 local repository에 설치한다.

mvn install

위 명령의 결과 처음 설정했던 localRepository 경로에 방금 작성한 arche type이 만들어진 것을 확인할 수 있다.

 

archetype 활용해서 maven 프로젝트 생성하기

이제 eclipse 등 툴에서 new maven project를 선택하면 arche type 선택하는 부분에서 방금 생성한 arche type이 나오게 된다.

또는 콘솔 기반으로 프로젝트를 생성하려면 아래의 명령을 어디서나 사용하면 된다.(아 물론 mvn은 path에 있어야 한다.) 여기서는 snapshot 버전으로 만들었기 때문에 하단에 [include snapshot archetypes]를 체크해야 한다.

mvn archetype:generate -DarchetypeCatalog=local

 

trouble shooting

 

Could not initialize class org.apache.maven.plugin.war.util.WebappStructureSerializer

위의 오류가 발생하면 다음의 플러그인을 추가한다.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>3.3.2</version>
</plugin>

 

 

 

'tools & libs > 빌드툴(maven,gradle)' 카테고리의 다른 글

[maven] maven trouble shooting  (0) 2022.04.12
[maven] maven lief cycle 관리  (0) 2022.04.12
[maven] maven을 활용한 의존성 관리  (0) 2022.04.11
[maven]서버에 배포하기  (0) 2021.08.22
[gradle]build.gradle  (0) 2021.01.30
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.