본문 바로가기

Study/Setting & Tip

DAY 134. Maven 설치

 

00. Maven 설치

 

- 아파치 메이븐 다운로드 페이지 접속

 

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

 

Maven – Download Apache Maven

Downloading Apache Maven 3.8.4 Apache Maven 3.8.4 is the latest release and recommended version for all users. The currently selected download mirror is https://dlcdn.apache.org/. If you encounter a problem with this mirror, please select another mirror. I

maven.apache.org

 

 

가장 최신 버전인 Maven 3.8.4 버전을 다운로드!

나는 윈도우를 사용하기 때문에 bin.zip 버전을 다운 받는다. (맥 사용자도 이 버전 다운로드해도 된다)

그리고 알아서 압축 풀기를 한다.

 

커맨드로 작업할 경우는 시스템 속성 > 환경 변수에 직접 등록해야된다.

Path 저장소경로~\apache-maven-3.8.4\bin 까지의 경로를 등록한다. (공백 앞뒤로 없어야 한다.)

 

 

cmd 선택 명령 프롬프트에서 mvn -version 입력 해보면 버전 정보가 나온다.

 

 

01. Maven 설정

 

기본적으로 STS에는 내장되어있는 Maven이 있다.

그러나 특정 버전을 사용할 경우에는 내장 Maven 사용하지 않고 다운로드해서 사용한다.

 

 

 

Preferences > Maven > Installations > Add... > Installation home 의 Directory ... 클릭하여 메이븐이 설치된 home으로 폴더를 잡는다.

 

 

최종으로 다운로드 한 Maven 3.8.4버전이 추가된 모습이고 사용할 것을 체크하고 Apply

 

 

다운로드 한 폴더 apache-maven-3.8.4 폴더 안에 conf 폴더를 보면 settings.xml 파일이 있다.

이 파일은 현재 다운로드 받은 메이븐에 대한 설정 파일이다. 이 파일을 읽어 올 수 있도록 설정한다.

conf까지의 경로를 copy하고 Preferences > Maven > User Settings 에서 세팅하면 된다.

경로 입력하고 Update Settings 누르고 Apply

 

 

 

 

02. Maven Repository 이용하기

 

https://mvnrepository.com/

 

1. ojdbc6

2. lombok

3. junit5

- 기존에 적혀있던 부분 지우고 추가,

- 경로가 달라졌기 때문에 AppTest.java 파일 수정 :   1. 기존 import 전부  삭제, Ctrl + space 로 @Test( org.junit.jupiter.api ) 추가 + 2. assertTrue() 도 (org.junit.jupiter.api.Assertions) 선택해서 static import 추가

4. assertj

5. mybatis

 

 

검색해서 가장 추가버전으로 <dependencies> 태그 안에 추가하기

 

각각 추가하고 Alt + F5 눌러서 Update Maven Project 에서 업데이트를 해준다.

 

 

 

 

그리고 나서 Pakage Explorer에 Maven Denpendencies 를 열어보면 라이브러리 추가한 것들과 그 라이브러리들과 종속 관계를 가지는 라이브러리들이 자동으로 다운되어서 추가된다. (옆에 원격지에 있는 라이브러리를 내 로컬 PC에 저장한 경로가 보인다. 기본 설정은, 내 PC > 사용자 > 지금 접속한 계정 > .m2 폴더 > repository에 저장된다. Default: ${user.home}/.m2/repository -> setting.xml 파일에서 확인할 수 있음)

 

이렇게 하면 프로젝트 만들어서 서로 공유할 때(깃에는 jar 파일을 포함하지 않기 때문에), 라이브러리가 포함되어 있지 않아도 pom.xml을 보고 내 로컬 PC로 같은 버전의 라이브러리를 다운받아서 사용할 수 있다.

 

 

 


<dependencies>
      <dependency>
          <groupId>프로젝트를 만드는 조직의 고유 아이디, 도메인의 역순으로 적는다.</groupId>

          <artifactId>실제 빌드했을 때, 만들어지는 파일 artifact 이름</artifactId>

          <version>프로젝트||라이브러리 버전</version>
          <!-- 개발 중 : SNAPSHOT , 배포 시 : RELEASE -->

          <scope>라이브러리 사용 시점</scope>
          <!-- 
             compile : 기본, 컴파일할 때, 배포할 때 사용할 때 라이브러리를 묶어서 제공
             provided : 컴파일때는 사용하지만, 배포할 때는 포함시키지 않는다.
             test : 테스트 코드에만 사용하는 라이브러리(프로덕트 코드, 배포에는 사용 X) -->

      </dependency>
</dependencies>


 

 

<!-- 라이브러리 의존성 설정 -->

  <dependencies>
	  <!-- DB 관련 라이브러리 -->
	<dependency>
	    <groupId>com.oracle.database.jdbc</groupId>
	    <artifactId>ojdbc6</artifactId>
	    <version>11.2.0.4</version>
	</dependency>
	
	<!-- mybatis -->
	<dependency>
	    <groupId>org.mybatis</groupId>
	    <artifactId>mybatis</artifactId>
	    <version>3.5.9</version>
	</dependency>
	  
	<!-- lombok 라이브러리 -->
	<dependency>
	    <groupId>org.projectlombok</groupId>
	    <artifactId>lombok</artifactId>
	    <version>1.18.22</version>
	    <scope>provided</scope>
	</dependency>
	  
	  
	<!-- Test 관련 라이브러리 -->
	<dependency>
	    <groupId>org.junit.jupiter</groupId>
	    <artifactId>junit-jupiter-api</artifactId>
	    <version>5.8.2</version>
	    <scope>test</scope>
	</dependency>
	
	<!-- assertj-core 라이브러리 -->
	<dependency>
	    <groupId>org.assertj</groupId>
	    <artifactId>assertj-core</artifactId>
	    <version>3.21.0</version>
	    <scope>test</scope>
	</dependency>
  </dependencies>

 

 

 

 

Dependencies 탭에서는 내가 사용하고 있는 라이브러리 목록들을 볼 수 있다. 옆에 scope도 표시해준다. 이곳에 표시된 것은 pom.xml 파일에 작성한 것들만 보여주는 반면,

 

왼쪽 Pakage Explorer의 Maven Denpendencies 에서는 라이브러리를 참조하고 있거나, 종속 관계있는 모든 항목을 표시한다. = Dependency Hierachy 탭과 같다.

 

Effective POM 은 기본적으로 설정되어 있는 내용 + 우리가 설정한 내용이 합쳐진 것

 

 

 

 

▼참조 사이트

 

https://maven.apache.org/guides/introduction/introduction-to-archetypes.html

 

Maven – Introduction to Archetypes

Introduction to Archetypes What is Archetype? In short, Archetype is a Maven project templating toolkit. An archetype is defined as an original pattern or model from which all other things of the same kind are made. The name fits as we are trying to provid

maven.apache.org