본문 바로가기

Build

(36)
08. Maven Repository Maven 의 Repository 는 LOCAL, CENTRAL, REMOTE 로 구성된다. Local Repository 말 그대로 사용자 PC 에 구축하는 Repository 이며 사용자가 처음으로 Maven Command 를 실행시 자동 생성된다. 기본 위치는 사용자 문서 폴더의 .m2 폴더를 찾아보면 된다. (ex > C:\Users\dukim\.m2\repository ) 그리고 pom 파일에 기술된 dependencies, artifacts, JARs, plugin 들이 여기에 저장된다. 아래는 maven 설치 폴더의 conf/settings.xml 의 내용이며 Local Repository 정보가 나와 있으며 여기서 경로를 수정할 수 있다. .... .... Central Repository..
07. Maven plugin 앞서 Maven 에서 많이 사용되는 phase 를 살펴보았다. 이런 메이븐 페이즈 또한 메이븐 플러그인을 통해 실질적인 작업이 실행된다. ( 즉 모든 기능은 플러긴 기반이다. ) 많이 사용되는 plugins 앞서 phase 에서 사용되었던 동작들이 정의된 plugin 이 많이 사용된다. 메이븐 플러그인 정의 메이븐 플러그인 실행 - 메이븐은 하나에 플러그인에서 실행할 수 있는 여러 작업들이 있다. - 이 각각의 작업을 골 ( goal ) 이라고 정의한다. - 하나의 플러그인에 여러개의 골이 있다. - 플러그인을 mvn groupId:artifactId:version:goal 로 해당 goal 을 실행시킬수 있다. mvn org.apache.maven.plugins : maven-compiler-plugi..
06. Maven phase Maven 에서는 기본 제공되는 phase 혹은 plugin 에서 제공되는 goal 을 실행할 수 있다. 그리고 제공되는 각 phase 은 clean, default, site phase 가 있고 각기 다른 라이프사이클을 가진다. 실상 phase 는 실행의 주체는 아니며 이 역시도 plugin 의 goal 을 호출하게 되어있다. clean phase clean : 이 페이즈를 실행하면 clean goal 이 실행되어 메이븐 빌드를 통해 생성된 모든 산출물을 삭제한다. 아래 실행 결과를 보면 maven-clean-plugin 을 호출하여 해당 Job 을 수행하는 것을 알 수 있다. C:\Users\dukim\eclipse-workspace\my-app>mvn clean [INFO] Scanning for ..
05. Maven POM.xml POM 파일은 project object model 의 약자이며 해당 파일은 항상 프로젝트의 root 디렉토리에 위치해야 한다. 그리고 이 파일은 프로젝트를 빌드하기 위한 여러 다양한 디테일한 정보를 포함하며 mvn 커맨드로 실행시 maven 은 이 POM 파일을 읽어 설정 정보를 찾으며 그리고 나서 goals 를 실행한다. POM pom.xml 에 아래 내용을 기술한다. 기본구조 com.blidkaga.group group-test 1.0.0-SNAPSHOT .... 위는 가장 기본이 되는 POM 파일의 구조로 groupId 는 보통 조직명을 의미하지만 실제로는 소스의 구조를 말하며 web 프로젝트의 경우 보통 reversed domain 형태로 표시한다. artifactId 는 project, lib..
04. Maven 기본 명령어 Form Maven 명령은 다음과 같은 형태로 실행 가능하다. $ mvn [options][][] option 은 pom.xml 이 없는 곳에서도 실행할 수 있고 golas 와 phase 는 pom.xml 있는 프로젝트 디렉토리에서 실행가능하다. goal 과 phase 는 한꺼번에 여러개를 동시 실행할 수 있다. option 을 통해 phase 로 옵션 전달시 -D 를 붙인 옵션을 사용한다. Example $ mvn clean test : clean 과 test phases 를 실행한다. $ mvn clean compiler:compile : clean phase 를 실행하고 플러긴의 compiler:compile 골을 실행한다. $ mvn -Dmaven.text.skip=true test : 옵션으로 ..
03. Maven 템플릿 Reference http://maven.apache.org/guides/getting-started/index.html Template Project 메이븐은 생성하는 프로젝트의 종류에 따라 기반이 되는 템플릿 프로젝트를 제공한다. 이 기능을 archetype 이라고 하는데 나중에 자세히 다룬다. org.apache.maven.archetypes 템플릿을 사용하는 프로젝트는 아래와 같이 만들 수 있다. 위 명령은 아래와 같이 분화한다. artifactID 를 프로젝트 명으로 가지며 GropuID 는 도메인에 해당한다. 이때의 pom.xml 파일의 구성은 아래와 같은데 위 archetype 으로 지정한 pom 에서 상속된 값들이 들어간다. 간단히 url 과 dependency 가 추가된 모습이다. 기타 ..
02. Maven 설치 설치전에 이미 Java jdk 및 Eclipse 를 설치했고 JAVA_HOME 으로 jdk 경로를 셋팅한 상태라고 가정한다. 메이븐 공식 사이트 ( http://maven.apache.org/download.cgi ) 에서 maven 을 받는다. 그후 압축을 풀고 적당한 위치로 이동한 다음 해당 위치를 MAVEN_HOME 으로 설정한다. 그리고 path 로 maven 의 bin 디렉토리를 지정한다. %MAVEN_HOME%\bin; 이렇게 설정후 cmd 창에서 mvn -version 이라고 입력했을 때 설치한 maven 의 버전이 나오면 되겠다. 확인용으로 간단히 Maven 프로젝트를 만들어 보자. Maven Project By Command Maven 스켈렉톤 프로젝트는 간단히 아래 명령으로 생성할 수 ..
01. Overview 아래는 TeamCity 라는 CI 툴을 사용해 빌드 및 배포하는 경우인데 개발자는 소스 커밋만 하면 되고 이를 SCM 을 통해 소스를 Repository 에 올리면 TeamCity 가 이를 모니터링 하고 있다가 소스 코드를 체크아웃 하여 빌드, 단위 테스트, 배포를 자동으로 해주는 모습을 보여준다. 이 경우 필요한 것이 빌드 - 테스트 - 배포 과정에 대한 상세 스크립트이다. 메이븐은 빌드 - 테스트 - 배포 과정에 대한 스크립트를 만들고 다른 프로젝트에도 활용할 수 있도록 한다. 주요기능 - 빌드 - 문서화 - 리포팅 - 의존관계 - 소스 코드 관리 - 릴리즈 - 배포 장점 - 편리한 의존관계 라이브러리 관리 기능 - 모든 프로젝트가 일관된 디렉토리 구조와 빌드 프로세스를 유지할 수 있다. - 메이븐이..