본문 바로가기
Java

[이클립스] Maven 설정

by Coarti 2023. 7. 28.

Maven


빌드할 때 사용하는 도구 ( 빌드 툴 )
반복되는 과정을 좀 더 효율적으로 만들어준다

프로젝트 생성 : 사용자 정의 프로젝트
라이브러리 설정 : 라이브러리 관리와 의존성 체크
코드 작업
컴파일
테스트
패키지 만들기
배포 : 라이브러리 저장소 활용
레포팅

 

그렇다면 이클립스도 프로젝트를 생성을 해주니  빌드툴이라 할 수 있는가
아니다 IDE 이다 훨씬 더 많은 일을 담당하기 때문이다

IDE = 빌드툴(Maven, Gradle, Ant) + 형상관리(Git, CVS) + JUnit + 디버거 + 컴파일러 + 콘솔 + 탐색기 + 편집기

설치

maven.apache.org/download.cgi -> apache-maven-버전-bin.zip 다운 -> 원하는 곳에 압축 풀기 -> path 설정 -> mvn -version 확인

// 프로젝트 생성
cmd -> 프로젝트로 이동 ->

mvn archetype:generate -DgroupId=com.newlecture -DartifactId=javaprj -DarchetypeArtifactId=maven-archetype-quickstart



-DarchetypeArtifactid : 누군가 만들어 놓은 maven-archetype-quickstart 라는 프로젝트 구조를 기본으로 한다 ( 참고 Maven Update 시 java 1.7 default )
-DartifactId : 이번에는 내가 javaprj라는 새로운 프로젝트를 생성한다.
-DgroupId : 그 때 내 프로젝트를 식별하기위한 그룹명은 com.newlecture 로 한다

SNAPSHOT : 개발 중일때 붙힌다

컴파일과 실행

pom.xml : 프로젝트 루트에 존재, 컴파일 | 실행시 사용

mvn compile : 컴파일 실행 명령어

버전 올려달라는 에러나오면 pom.xml에 작성

<properties>
	<maven.compile.source>11</maven.compile.source>
	<maven.compile.target>11</maven.compile.target>
</properties>


컴파일 후 target 폴더에서 .class 파일 확인


mvn package : 패키지(jar) 생성 명령어
cmd Building jar에 저정된 위치 확인
실행 방법 2가지
1. 클래스파일 실행 ( 여기서는 pass )
2. jar파일 실행

java -cp target\javaprj-1.0-SNAPSHOT.jar com.newlecture.App

메이븐 기능과 이클립스를 합치면 굉장히 편해진다

Build Lifecycle ( Phase - Plug-in - Goal )

단계(Phase) ( 여기 단계까지 실행 해줘 )
각 단계별 세부 실행 내용은 플러그인 방식

mvn process-resources
mvn compile
mvn process-test-resources
mvn test-complile
mvn test
mvn package
mvn install
mvn deploy

plug-in 구성하는 프로그램 : Goal ( 실제적인 실행 주체 )

각 단계별 plug-in을 pom.xml ( project object model )에서 변경할 수 있다 ( 예 : jar → war 설정할수 있음 )

cmd에서 확인해보자
mvn help:describe -Dcmd=compile

그러면 어디서 플러그인을 받을까?
https://maven.apache.org/plugins/index.html

Eclipse + Maven

import 해보자
Maven - Existing Maven Projects - pom.xml이 있는 위치
이때 에러가 발생했다면 이클립스 설치시 zip으로 했을 가능성이 있다 

 

재설치 해야한다
1 .각 프로젝트에 .matadata

2. elclipse

3. C:\Users\(사용자이름) 이곳에 .eclipse, .p2

해당 파일을 삭제
exe 파일을 새로 받아 설치 하자


컴파일러 플러그인 + JDK 변경

 

플러그인을 설정해보자 ( pom.xml )

<!-- Old Version
<build>
	<plugins>
		<plugin> setting java version 
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>3.8.1</version>
			<configuration>
				<source>11</source>
				<target>11</target>
			</configuration>
		</plugin>
	</plugins>
</build>-->

<!-- New Version ( over 3.6 ver ) -->
<properties>
	<maven.compiler.source>11</maven.compiler.source>
	<maven.compiler.target>11</maven.compiler.target>
	<!-- Encoding -->
	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

 

< 추가 >

mvn archetype:generate


메이븐 프로젝트 생성 시 누군가 만든어 놓은 것으로 빌드를 했는데
인자를 주지 않고 모델로 삼을 수 있는 archetype이 얼마나 되는지 확인해보자

대략 3309개가 존재했다 설정 안하면 maven-archetype-quickstart 설정된다

ctrl + c 로 종료, Y 엔터

war로 변환

java프로젝트에서 war로 바꾸기 번거롭고 설정 잘못하면 사용 못할 수있다

그 변환을 Maven이 잘해준다

<!-- Before -->
<!--<packaging>jar</packaging>-->

<!-- After -->
<packaging>war</packaging>



webapp 폴더 밑에 WEB-INF 만들자

톰캣 ROOT의 WEB-INF에서 web.xml 복붙
프로젝트 webapp 안에 index.html <h1>Hello Maven</h1> 를 입력하고 실행시키자

< 이클립스에서 웹프로젝트 크롬 시크릿 모드로 실행 하는 방법 >

https://cloakinghost.tistory.com/20

라이브러리 설정

원격으로 자동 다운로드 
https://mvnrepository.com/

<dependencies>
	<dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jsp-api</artifactId>
        <version>톰캣 버전 확인</version>
    </dependency>
    <dependency>
    	<!-- add library -->
    </dependency>
</dependencies>

 

간혹 Maven으로 라이브러리 다운로드 시
파일다운이 되다가 마는 경우가 있다
C:\Users\(사용자이름)\.m2\repository 안에 들어와서 전부 다 지우면 알아서 다시 받는다
깨졌는지 구분하는 방법은 라이브러리 꺽임표를 누르면 아무것도 나오지 않는다

라이브러리 인덱스 검색

Maven Repositories 탭 - Global Repositories - central 우클릭 - Rebuild index (1시간 소요)

이후에

pom.xml - dependencies 탭 - add - 검색을 통해 추가 할 수 있다

 

728x90