maven

jsbak·2020년 12월 3일
0

빌드가 뭔지
배포가 뭔지 알아야한다.

build

빌드란 소스개발에서 최종 사용자에게 전달될때까지의 전 과정, 즉 프로젝트의 생명주기 전체를 아우르는 행위
이 생명 주기에 그과정하나하나를 Phase라고한다.
Phase 쪼개진 이 페이즈를 통합해서 빌드라 칭한다.

  1. 제일 먼저 '정형화된 개발환경'이 필요하다.
    개발자마다 편한것 쉬운것 이런게 다르기 때문에(자유도를 낮춤)
  2. 어떻게하면 jar파일을 손쉽게 가져와서 쓸수 있을까? "의존성관리"
  3. 코드 품질 관리 및 결함 관리
    이런 것을 관리하는 프로그램이 필요
    -> 빌드 관리툴의 필요성

메이븐이라는 툴을 쓸경우 그 페이즈가 어떻게 지원되는지

신입개발자가 메이븐을 쓸경우 장점
1. 템플릿 프로젝트를 만들어 준다.
2. jar파일을 아주 쉽게 가져다 쓸 수 있다.

메이븐이 사용되는 위치

개인빌드

(메이븐)

통합 빌드

각 개발자가 만든 산출물을 통합하는 과정을 이것 (허드슨, 젠킨슨, 통합서버를 따로 세팅해야함.)

환경 변수 설정

sysdm.cpl - M2_HOME(D:\B_Util\6.maven\apache-maven-3.6.3설정)
MVN_HOME(%M2_HOME%)
PATH에 %M2_HOME%\bin

관리 하는 방법

원래는 직접 다운받아서 넣고 설정해줬다.(흩어져있다)
중앙저장소? 센터레파지토리에 저장

search.maven.org
여기서 찾는데 원본이 있고 파생된 녀석들이 있는데 그중에서 원본을 찾아야한다.
제품명 artifact-id
그룹명위에 큰 글씨, 확인 Version

그림과 같이 나온다

우리집 냉장고(저장고 같은 역할)

주로 여기서 꺼내쓴다.
openfile 열어서

settings.xml 설정해주기

글로벌 레파지토리에서 rebuild index를 한이유 어디에 뭐있는지 쉽게 알기 위해서

메이븐 프로젝트 생성

jar 자바 아카이브
war 웹 아카이브?? 알아서 배포?
jar -> 스텐드어론

cf.제품 카테고리를 거꾸로 뒤집어 쓴다.

각 페이즈 에서 사용될 녀석들을 다운받는 중

이 두개가 메인, 자바파일은 java, res관련 파일 resources

틀을 제공하는중
test라고 되어있는 것?
안정적으로 돌아가는지 확인해야한다.
테스트는 운영서버를 할때 가지고 가면 안된다.
그리고 개발테스트를 여기서 다하면 나중에 배포시에는 배포가 안되게 만들어 준다.

실제 파일 시스템 구조

실제는 저렇지만, 테스트 부분은 개발자가 직접 개발을 해서는 안되는 부분이다. 배포시 저기에 빠진다.

POM(Project Object model)

  • 하나의 프로젝트 안에서 객체형태로 모델을 관리한다.
  • POM 은 프로젝트 관리 및 빌드에 필요한 환경 설정, 의존성 관리 등의 프로젝트 정보들을 담고 있으며, 이는 메
    이븐 프로젝트 생성 시 기본 설정 파일로 생성되는 pom.xml 파일에 기술된다.
    pom.xml 파일은 프로젝트의 세부 메타 데이터 정보를 포함하여 크게 10개의 항목으로 구성되며, 프로젝트 일반
    정보, 버전 및 설정 관리, 빌드 환경, 라이브러리 저장소 및 의존성 등의 내용을 포함한다

각 페이즈가 POM설정에서 플러그인과 매칭하고 있다.

컴파일러 플러그인 버전 변경

  • 위에 설정 변경 전
  • 변경 후
  • Update

페이즈별 어떤 플러그인을 지원하는지 알아야한다.

2. 의존성 관리

메이븐 특징 - 의존성 관리를 쉽게 도와준다.

결국 플러그인이든 의존성이든 다 중앙 냉장고(저장소)에 있다라는 사실

방법 2


결과

장점 : 의존성 관리 수월(jar 받으면 resource, doc문서 알아서 잡아준다)
단점 : 네트워크 상황에 따라 좀 달라짐

우리가 써야하는 잭슨


<type>이거 제거한다.

jar파일의 의존관리의 구조화 하고있다.

mvnrepository.com

https://mvnrepository.com/
웬만한 사제 저장소도 다 찾는다.
원본 찾기도 쉽다. 다운 많은게 원본



페이즈를 결정해야한다.
clean 한번다 지워달라(클래스가 없어졌다)

1번째 빌드는 이전 명령을 실행 그래서 2번째 빌드로 실행

compile

classpath에 class파일이 생겼다

  • install

    필요한 플러그인을 일단 다운로드중..
    플러그인 공정 이전에 공정들도 다 실행시켜버린다. 그리고 그 과정에 필요한 플러그인들을 다 받고 알아서 실행

  • 결과 파란색, 읽어보면 설치 된 곳 target아래에 설치되어있다.

아키타입

아키 타입 - 템플릿을 선택

  • 아래체크 기본 템플릿 사용

    war 선택

    webapp -> webContent

플러그인 두개 넣어주기 컴파일러,
플레이스 홀더 잡아주기

war플러그인

Web 관련 버전 변경

web.xml만듬

servlet 디펜던시 추가

dependency의 groupId는 jar파일의 경로

개발할 때만 쓰고 배포시에는 버리겠다(provided)

배포때도 가져가는것 compile
scope가 test면 테스트할때만 사용할 수 있다.

jsp용 api 플러그인도

Scope를 저기서 체크

기본 Scope 설정은 compile이다.

과제 제출

JDK 부터 해서 메이븐까지 개발 환경 구축 보고서

깃사용 환경도

profile
끄적끄적 쓰는곳

0개의 댓글