[Maven] maven 프로젝트 생성하기

[Maven] maven 프로젝트 생성하기


JAVA를 설치 한 후 진행해야 함
tool : Visual studio code2

Run -> Test -> Package -> Deploy순서로 진행하면 무방

1. maven 버전 확인

mvn --version

 해당 프로젝트 명칭(컴포넌트 명칭), groupId 범위 내에서 유일해야함

2. 새 프로젝트를 만들기 위해서 아래의 명령어 사용

mvn archetype:generate
-DgroupId=com.mycompany.app
-DartifactId=my-app
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false
  • DgroupId=com.mycompany.app : GroupId를 지정
    • groupID : 프로젝트를 모든 프로젝트 사이에서 고유하게 식별 해 주는 것.
      groudId에는 네이밍 스키마를 적용하도록 해야 함
    • 관례적으로 회사 도메인명(google.com, naver.com)을 거꾸로한 명칭을 사용
    • com/mycompany/app 아래에 App.java생성
  • DartifactId=my-app : artifactId를 지정
    • artifactID : 버전 정보를 생략한 jar파일의 이름
    • 해당 프로젝트 명칭(컴포넌트 명칭), groupId 범위 내에서 유일해야 함
      • 이름은 원하는거로 아무거나 소문자를 이용해서 작성
      • 만약 써드 파티 jar파일이라면 할당된 이름을 사용해야 함 
    • 현재 디렉토리에 my-app이라는 폴더가 생김
  • DarchetypeArtifactId : 프로젝트의 초기 구조를 생성하는 archetype
    • 템플릿 아디펙트 ID를 지정한다.
      • 대부분의 경우 ArtifactID를 지정하면 그것으로 어떤 템플릿인지 특정 가능
    • 기본은 maven-archetype-quickstart
    • archetypeCatalog
    • ex) 간단한 웹 프로젝트를 명시하고 싶으면 
      • -DarchetypeArtifactId=maven-archetype-webapp
  • DinteractiveMode : batch모드, interactive 모드?
    • false - > batch모드 : 자동적으로 디폴트값들을 사용
    • CL 에 --batch-mode나 -B의 명령어로도 batch모드 사용 가능 

3. Visual Studio Code 실행시키기

code ./my-app

  • code명령어가 인식되지 않을때는 VS code에 들어가서 
    • command + shift + p 누른후 shell command  입력 후 엔터
  • 이미 VS code로 실행중이면 또 실행할 필요는 없음

4. 아래와 같이 VS code가 자바로 작동하도록 해야 함



Test  실행

1. Command Palette에서 'task' 입력

  • Tasks:Run Task 클릭(위의 사진에서 4번째 꺼)

  • maven클릭

2. tasks.json 파일을 보게 됨

tasks.json


3. Palette(Command + shift + P)에서 task를 입력하고,  Tasks: Run Test Task 클릭






Deploy를 하려면(deploy는 WAS(ex Tomcat)에 하는것)

<distributionManagement>
<repository>
<uniqueVersion>false</uniqueVersion>
<id>corp1</id>
<name>Corporate Repository</name>
<url>file:///Users/gim-yeongdong/workplace/mvnProjectPractice/my-app</url>
<layout>default</layout>
</repository>
</distributionManagement>
이와 같은 코드를 pom.xml에 넣어줘야 함

참고 : https://maven.apache.org/archetypes/index.html

댓글

이 블로그의 인기 게시물

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?

[Python] # -*- coding: utf-8 -*-를 쓰는 이유