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 - 검색을 통해 추가 할 수 있다
'Java' 카테고리의 다른 글
[ 책 구매 ] 자바 성능 튜닝 이야기 / 자바 트러블 슈팅 (0) | 2023.08.17 |
---|---|
[Data Structure] BST (0) | 2023.07.24 |
인터페이스로 느슨한 결합 만들기 (0) | 2023.06.13 |
The superclass "javax.servlet.http.HttpServlet", determined from the Dynamic Web Module facet version (4.0), was not found on the Java Build Path (0) | 2023.05.30 |
Tomcat9 에러 (Windows) (0) | 2023.05.30 |