[RealCoding] Maven & Jenkins

윰지·2020년 7월 9일
0

RealCoding

목록 보기
3/6
post-thumbnail

파레토 법칙

  • 20%의 기능으로 대부분의 80%의 일을 처리할 수 있다.

Maven

What is Maven

  • 지식의 저장소라는 뜻
  • 빌드 프로세스를 간소화하려는 목적으로 Jakarta Turbine 프로젝트에서 시작 됨
  • Java 기반의 프로젝트를 빌드하고 관리할 수 있는 툴

Maven's Objectives

  • 쉽게 build
  • uniform build system 제공
  • quality project information 제공
  • best practices development를 위한 가이드라인 제공

Maven Convention

  • 소스코드, 바이트코드, 설정파일, 리소스파일 등의 위치가 미리 정해져 있다.
  • ${basedir} : 프로젝트 기본 폴더 위치
ItemDefault
source code${basedir}/src/main/java
Resources${basedir}/src/main/resources
Tests${basedir}/src/test

Project Object Model

  • POM은 XML 파일 형태로 프로젝트에 대한 정보와 구조를 설명
  • 프로젝트 폴더 및에 pom.xml이 존재
  • Super POM : Maven의 default POM으로 따로 명시하지 않는다면 모든 POM은 자동으로 Super POM을 상속 받는다.
  • POM 예제
    • < project > : 프로젝트 root tag
    • < modelVersion > : 항상 4.0.0
    • < groupld > : 프로젝트 그룹 아이디, 보통은 조직 정보가 들어감 ex) com.riotgames.kr.account
    • < artifactld> : 프로젝트 이름
    • < version > : 프로젝트 버전
    • < dependencies > : 다른 프로젝트, 라이브러리를 참조
    • < repositories > : remote repository에 대한 접속 정보
    • < parent > : 상속 받을 부모의 POM정보

Maven Repository

  • Repository는 프로젝트 jars, library jar, plugin, artifacts가 저장되는 곳
  • Local, Central, Remote 3종류가 있음
  1. 먼저 Local Repository Search
    • 있다면 사용
    • 없으면 2.
  2. Central Repository를 Search
    • 있다면 Local에 다운로드 후 사용
    • 없다, 하지만 Remote Repository가 설정되어있다면 3.
    • 없다, 그리고 Remote Repository가 없다면 Exception
  3. Remote Repository를 Search
    • 있다면 Local에 다운로드 후 사용
    • 없으면 Exception

Build Life Cycle

PhaseHandles~
Prepare resourcesresource copying~
validateValidating the information~
compilecompliation~
TestTesting~
packagepackaging~

Jenkins

What is Jenkins

  • self-contained, open source automation server which can be used to automate all sorts of tasks related to building, testing, and deploying software.

0개의 댓글