프로젝트를 만들고 개발을 하는데 도움을 주는 빌드 도구

이클립스, intelij 등과 함께 사용하면 아주 유용하다

POM.XML에 필요한 라이브러리를 적어놓기만 하면 알아서 다운받고, 알아서 빌드 패스 설정하고, 알아서 해당 라이브러리가 필요로 하는 다른 필수 라이브러리까지 유효한 버전에 맞춰 다운 받고 설정해 준다.
IDE와 연동하면 maven 웹페이지에 갈 필요 없이 maven index를 리빌드 해두면 IDE에서 필요한 버전의 라이브러리를 검색하고 설치까지 할 수 있으며, 다른 컴퓨터에서 개발하거나 서비스 할 때는 POM.XML만 달랑 들고가면 된다.
(단, 본인이 작성한 클레스가 앱에 포함되어 있을 경우에는 그것도 포함해서 가져가던가, maven open repo에 deploy 해서 pom.xml에 포함시키든가 해야한다)

https://maven.apache.org/download.cgi

주소에서 Binary zip archive을 다운받는다

원하는 곳에 압축 풀고 시스템 path 환경변수를 설정해준다



IDE 없이 cmd에서 프로젝트 생성하기

프로젝트 생성을 원하는 디렉토리로 이동 -> 아래 명령어 입력

mvn archetype:generate -DgroupId=식별자그룹아이디 -DartifactId=프로젝트이름 -DarchetypeArtifactId=maven-archetype-quickstart

ex)
mvn archetype:generate -DgroupId=com.evagrim -DartifactId=javaprj -DarchetypeArtifactId=maven-archetype-quickstart

maven-archetype-quickstart은 메이븐에서 제공해주는 기본 형태의 아키타입 프로젝트이다
다른 사람이 만든 프로젝트 구조를 사용하고 싶을 경우 maven 사이트 검색이나 아키타입 id목록을 확인해서(mvn archetype:generate 명령어만 쳐주면 절차적 프로젝트 생성으로 사용 가능한 아키타입id가 주르륵 나온다) 위의 영역에 적어넣으면 됨

 

프로젝트 생성완료


명령어를 실행한 폴더에 javaprj이라는 프로젝트가 생성된다

 

 


maven 명령어는 pom.xml 설정 파일이 보이는 해당 디렉토리에서만 사용함

 



<maven phase 명령어 맛보기>

mvn compile
컴파일 한다 (컴파일까지의 phase를 모두 진행한다)
-compile 오류 뜨면 pom.xml에 사용하고 있는 jdk 버전을 명시해준다

 

POM.XML
<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.evagrim</groupId>
  <artifactId>javaprj</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>javaprj</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
</project>


다시 컴파일 하면 C:\project\maven\javaprj\target\classes 경로로 타고 들어가면 class 파일로 컴파일 된 것을 확인할 수 있다


mvn package
패키징 한다 (패키지까지 하는 과정들을 모두 수행한다, 컴파일 역시 포함)
C:\project\maven\javaprj\target에 .jar 파일로 만들어진다
-단순한 압축이라 zip으로 확장자를 바꾸면 내부를 확인해 볼 수 있음



<maven 프로젝트 패키지 실행방법>

프로젝트 경로로 이동한다

java -cp target\.jar파일명 App클래스경로

 

App 클래스 경로는 com.evagrim.App 이런식으로 작성

모르겠으면 .jar 파일 확장자를 zip으로 바꿔서 열어보거나 처음 프로젝트 생성할때 groupId로 정한걸 App 앞에 붙인다



<maven build lifecycle basics (메이븐 빌드 순서 -각 단계를 phase라 함-)>

validate
compile
test
package
verify
install
deploy

mvn ... 하면 그 하위 단계는 알아서 수행된다
install은 로컬 저장소에 자신이 만든 클레스 파일을 부품화(dependency)시켜서 사용할 때 쓰고
deploy는 maven 원격 저장소(global repo)에 올려서 다른 개발자들과 공유하는데 쓴다 (회원가입해야함)

빌드 순서는 POM.xml의 <packaging>jar</packaging> 설정에 따라 다르다
(<packaging>war</packaging>로 하면 웹아카이브(웹개발) 형식에 따른다)

자세한 내용은 maven 홈페이지에서 확인


각 단계(phase)를 실행하는 프로그램은 플러그인처럼 뺐다 꼽았다 할 수 있어 플러그인(plug-in)이라 부른다
이 플러그인들은 또한 하나가 여러 기능을 포함하고 있을 수 있어 그 중 하나의 기능을 goal이라 부른다
(goal은 플러그인 클레스 경로 뒤에 붙는다  -plugin:3.1:compile, -plugin:3.1:testCompile)

명령어
mvn help:describe -Dcmd=compile

컴파일까지 수행하는데 필요한 것들 기술해달라 요청


각 phase에 사용할 수 있는 plug-in들은 아래서 받을 수 있다 
https://maven.apache.org/plugins/index.html


 


<이클립스(IDE)에서 Maven 사용>

기존 maven 프로젝트를 가져올때는 그냥 import 하면 된다 (이클립스 EE 버전에는 깔려있음)

 

 


<plug-in 변경방법>

 

pom.xml

 

<build> </build> 태그 사이에 들어가 있는 것이 plugin 요청 사항이다

저러한 식으로 필요한 라이브러리를 적어넣으면 알아서 설치하거나 갈아끼거나 필요한 다른 라이브러리 체크하고 해준다

 

 


pom.xml이나 라이브러리를 수정하면 항상 maven update project를 해줘야함

 


<웹프로젝트로 변경하는 법>


pom.xml => <packaging>jar</packaging> = 변경 = <packaging>war</packaging>
수정 후 maven update
폴더 구성이 웹프로젝트에 적합하게 생성되고 변경되는 것을 볼 수 있다 (webapps 라는 웹용 root 폴더가 생긴다)
(톰캣 같은 서버 실행환경은 직접 설정해줘야 한다. web.xml 요구할테니 요구경로에 만들어줘야한다. webapp\web-inf 인가에 넣는 걸로 알고 있음)



<pom.xml에 다운 받고 설치할 라이브러리 지정해주는 방법들>

* Maven 로컬저장소 위치 (C:\Users(사용자)\userId\.m2\repository\org
- 라이브러리 파일이 깨지는 등의 문제가 생기면 repository 속의 내용물을 싹다 지워버리면 된다
(repository는 지우면 안된다. 그러면 다시 IDE를 켰을 때 메이븐에서 pom.xml을 보고 다시 설치한다)


1. 사이트에서 검색하고 추가하는 법

 

https://mvnrepository.com


mvn repo 사이트에서 필요한 라이브러리 + 버전을 검색해서 코드 복사 pom에 붙여넣기



2. 이클립스에서 바로 검색하고 추가하는 법

 

window 탭 > view를 열어야 하는데 other... 에 Maven repositories 창을 열어준다

 


사이트에 있는 Global Repo의 id를 받아와야 하기 때문에 인덱스 리빌드를 해준다 (1시간~5시간까지 걸릴 수 있음)

 


pom.xml 하단의 dependencies를 클릭해서 add를 누르면 검색할 수 있다 그 후 바로 추가해주거나

 


프로젝트 우클릭으로 maven 탭에서 추가해주면 됨

 


내가 만든 라이브러리를 설치하려면 라이브러리를 만든 뒤 Run > Run As > Maven install
을 통해 로컬저장소에 저장해주고 Local Repo 인덱스를 리빌드 한 뒤 추가해주면 된다

(딴 컴터에서 쓰려면 그냥 Export해서 .jar로 출력한담에 pom.xml과 같이 들고가던가 mvn deploy 하자)

'Development > Java' 카테고리의 다른 글

Spring MVC, 웹 개발환경 설정 #3  (0) 2022.08.26
DI, AOP #2  (0) 2022.08.25
Spring Framework, DI, IoC container #1  (0) 2022.08.23
List String Array, Transaction, Overload #12  (0) 2022.08.23
파일 등록과 사용 #11  (0) 2022.08.22

+ Recent posts