3 minute read

메이븐(Maven)

요약

: Maven은 프로젝트에서 필요한 라이브러리를 중앙레파지토리에서 자동으로 가져오므로, 이클립스에서 따로 라이브러리를 추가할 필요가 없다. 아래는 junit을 추가한 예제이다. 이와 같이 추가만 해주면 자동으로 라이브러리가 추가된다.

<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.1</version>
    <scope>test</scope>
  </dependency>
</dependencies>

메이븐(Maven) 설치

  1. 메이븐 공식홈페이지에서 OS에 맞도록 설치

     # 윈도우
     https://maven.apache.org/download.cgi
    
     # 리눅스
     ## 공식홈페이지에서 최신버전 다운로드
     wget https://dlcdn.apache.org/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz -P /fswas/wasadm/______BACKUP/231012__maven_install_file
        
     ## 압축해제 (-C 옵션 압축해제 위치 지정)
     cd /fswas/wasadm/______BACKUP/231012__maven_install_file/
    sudo tar -xf apache-maven-3.9.5-bin.tar.gz -C /opt
    
     ## 심볼릭지정 (관리차원)
     sudo ln -s /opt/apache-maven-3.9.5 /opt/maven
    
    
  2. 메이븐홈(M2_HOME) 설정
     # 윈도우
     # 제어판 > 시스템 > 고급 시스템 설정 > 환경변수 - 시스템변수(새로만들기) 클릭
     C:\Program Files\apache-maven-버전
        
    
     # 리눅스  
     sudo vi /etc/profile
    
     # 아래 내용 추가
     export M2_HOME=/opt/apache-maven-3.9.5
     export PATH=$PATH:$M2_HOME/bin
     export PATH
    
     source /etc/profile
        
    
  3. 패스(M2_HOME + /bin) 설정
     # 윈도우 > PATH
     C:\Program Files\apache-maven-버전\bin
        
    
     # 리눅스  
     # 위에서 설명 완료
    
    
  4. 완료
     # 정상이면 정보가 출력된다
     mvn --version   
     mvn -v
        
     Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
     Maven home: /opt/apache-maven-3.9.5
     Java version: 1.8.0_312, vendor: Raspbian, runtime: /usr/lib/jvm/java-8-openjdk-armhf/jre
     Default locale: ko_KR, platform encoding: UTF-8
     OS name: "linux", version: "5.10.103-v7l+", arch: "arm", family: "unix"
    
    

메이븐(Maven) 기본 사용법

STEP1. 어플리케이션 생성

cd 원하는 디렉토리
mvn archetype:generate -DgroupId=com.example -DartifactId=myproject -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

# 위 명령은 com.example 그룹ID와 myproject 아티팩트ID를 가진 
# Maven 퀵스타트 아키타입(템플릿)을 기반으로 
# 새로운 자바 프로젝트를 생성한다. 
# 이후 해당 프로젝트 디렉토리로 이동하면 된다.

# 결과
│myproject
├── src
│   ├── main  
│      ├── java  
│            ├── com  
│                  ├── example 
│                        ├── App.java
├── pom.xml

STEP2. 컴파일 수행

# 컴파일 수행
mvn compile    # BUILD SUCCESS 가 출력되면 된다.


# 에러가 나온다면 pom.xml 을 열고 아래내용을 
# </dependencies> 태그 다음라인에 작성하면된다.
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>

위 내용을 수행하면 프로젝트 폴더에 target 폴더가 생긴다. 그리고 [루트]/target/classes/com/example 디렉토리에 App.class 파일이 생긴다.

STEP3. 실행

mvn exec:java -Dexec.mainClass="com.example.App"

메이븐(Maven) 기본 패키징 방법

jar파일 패키징 생성

# 메이븐 프로젝트 빌드 수행
mvn package 


# target 안에 jar 파일이 생성된다.
# [루트]/target/myproject-1.0-SNAPSHOT.jar 

프로젝트를 패키징하여 필요한 JAR 파일을 생성한다. 이제 배포도 가능해졌다.

jar파일 패키징 실행

# com.example.App: 실행할 메인 클래스의 패키지 이름과 클래스 이름.
# com.example.App은 com.example 패키지에 있는 App 클래스를 실행하는 것을 의미

java -cp [루트]/target/myproject-1.0-SNAPSHOT.jar com.example.App

지금까지 메이븐(Maven) 기본 사용방법을 알아보았다.

메이븐(Maven) 이클립스에서 사용법

참고) https://javacan.tistory.com/entry/import-maven-project

STEP1. Maven 어플리케이션 준비

신규생성 방식

  1. Create a Maven project
  2. Use default Workspace location (프로젝트 저장경로 설정) > Next
  3. 기본 프로젝트 타입을 지정 > Next
    • Archetype 는 메이븐에서 제공하는 템플릿.
    • 개발하고자 하는 프로젝트의 타입을 골라 선택하면 기본 구조를 자동으로 만들어 준다.
    • Web 어플리케이션을 만들어야 하기 때문에 maven-archetype-webapp 를 찾아야 한다.
    • 목록에서 좀 더 쉽게 찾고 싶다면 Catalog 을 한다. Catalog > Internal 을 선택하면 된다. Catalog 로 archetype 을 걸러내고 maven-archetype-webapp 를 찾아 선택한다.
  4. 패키지 주소 정하기 (Group id 와 Artifact id 를 입력) > Next
       # 입력 예시
       Group id: com.kbacrd
       Artifact id: dbd
    
    
  5. 메이븐 프로젝트 생성 완료
       C:\KBCARD\STS\WORKSPACE\BIG
       ├─.settings
       ├─src
       │  └─main
       │      ├─resources
       │      └─webapp
       │          └─WEB-INF
       └─target
           ├─classes
           ├─m2e-wtp
           │  └─web-resources
           │      └─META-INF
           │          └─maven
           │              └─com.blang
           │                  └─big
           └─test-classes
    

    Web 어플리케이션을 기본 프로젝트 구조가 자동으로 갖춰졌다.

임포트(Import)방식

임포트 참고자료) https://javacan.tistory.com/entry/import-maven-project

  1. 메이븐 스프링프로젝트 압축파일 준비.
  2. IDE 워크스페이스에 압축을 해제.
  3. File > Import > Maven/Existing Maven Projects
  4. [Browse] 버튼을 클릭해서 pom.xml 파일이 위치한 폴더를 Root Directory로 선택하고 [Finish]
  5. 메이븐 프로젝트 임포트 완료

STEP2. 메이븐 프로젝트 이클립스 설정

해당 설정은 “javax.servlet.http.HttpServlet” 오류가 발생과도 연관있음)
참고자료) https://mainia.tistory.com/6793

STEP3. 실행

: 최종 실행(RUN)! 어플리케이션을 실행한다.

추가한 Web 프로젝트를 오른쪽 마우스 > Start > (정상실행)

메이븐(Maven) 로컬레파지토리 사용하기

STEP1. (setting.xml) 로컬레파지토리 설정

setting.xml파일 수정이 필요하다. (초기라면 없을 수 있다. 없다면 생성한다.)
요약하면 다음과 같다.

  1. setting.xml 파일 생성
  2. 이클립스에서 해당 파일을 설정

사진

STEP2. (pom.xml) 로컬레파지토리에 존재하는 라이브러리리와 동일하게 작성

.m2 경로 repository 그대로 썻다면 dependency도 그대로 사용하면 된다.

<!---
예시) 로컬컬레파지토리에 존재한다면 실제로는 아래 경로를 파일을 참조하게된다

{설정한 localRepository}/org/slf4j/jcl-over-slf4j/1.7.25/jcl-over-slf4j-1.7.25.jar 
-->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
    <version>1.7.25</version>
</dependency>

STEP3. 이클립스 적용

setting.xml 파일이 없었던 경우)
프로젝트 우클릭 > Run As > Maven install > (repository 폴더가 생성되고 하위에 라이브러리가 생긴다.)

이후 컴파일을 진행해주고, Maven Dependencies를 확인해 주면 해당 라이브러리들의 경로가 변경된 것을 확인 할 수 있다.
경로 변경이 되지 않았거나, 있어야할 라이브러리가 없다면,
Maven update Projects를 통해 업데이트해준다.
네트워크를 통해 라이브러리들을 받는게 아니라 로컬에 있는 라이브러리들을 참조하는거라 시간은 오래 걸리지 않는다.

위와 같은 방법들을 통해 스프링부트는 의존성 관리를 간편하게 해주어 개발자가 더욱 편리하게 어플리케이션을 개발할 수 있도록 도와준다.

Leave a comment