SlideShare uma empresa Scribd logo
1 de 23
Maven 소개 이수안(http://inch772.blog.me) 아꿈사(http://cafe.naver.com/architect1.cafe)
Maven이란? Maven의 주요기능 Project Object Model 	The Build Life Cycle Maven Plugins The Dependency Mechanism 	 Repositories
Maven? 	[NOUN] anexpertorconnoisseur [from 네이버사전] A maven (also mavin) is a trusted expert in a particular field, who seeks to pass knowledge on to others. The word maven comes from the Hebrew, via Yiddish, and means one who understands, based on an accumulation of knowledge  [from Wikipedia]
전문가 코딩하던 노인 http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=52&MAEULNO=20&no=44921
Maven? 프로젝트의 빌드 관리하는 툴 스크립트 대신 설정 어떻게 할지 보단 무엇을할지 빌드로직을재사용 의존 성 관리를 응집성 있게
Maven 의 목표 빌드 프로세스를 쉽게만들기 균일한 빌드 시스템을 제공 Best Practices 제공 프로젝트의 정보를 제공
Maven이란? Maven의 주요기능 Project Object Model 	The Build Life Cycle Maven Plugins The Dependency Mechanism 	 Repositories
Project Object Model Define What, not How 빌드에 관련된 모든 정보는 pom.xml 에 정의
Project Object Model pom.xml ,[object Object]
의존성
프로젝트 구조
각종 어플리케이션 및 테스트를 위한 리소스…,[object Object]
Maven이란? Maven의 주요기능 Project Object Model The Build Life Cycle Maven Plugins The Dependency Mechanism 	 Repositories
Build Life Cycle
Build Life Cycle 각 Build 단계는 Plug-in을 실행하여 원하는 작업을 수행한다.     <plugin>         <artifactId>maven-compiler-plugin</artifactId>         <version>2.0.2</version>         <executions>           <execution>             <id>default-compile</id>             <phase>compile</phase>             <goals>               <goal>compile</goal>             </goals>           </execution>           <execution>             <id>default-testCompile</id>             <phase>test-compile</phase>             <goals>               <goal>testCompile</goal>             </goals>           </execution>         </executions>       </plugin>
Build Life Cycle 거의 기본 설정으로 80% 커버 만약 개별적인 빌드 내용이 필요하면 확장가능한 플러그인 이용
Build Life Cycle Plug- in들
Maven이란? Maven의 주요기능 Project Object Model 	The Build Life Cycle Maven Plugins The Dependency Mechanism Repositories
The Dependency Mechanism
The Dependency Mechanism 필요한 의존성을 정의만 하면 됨 Maven은..  연관된 의존성 다운  컴파일과 테스트 과정에서 다운된 의존성 연결
Repository Group  artifact version
Repository Remote Local
하나만 더! VS

Mais conteúdo relacionado

Mais procurados

오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)중선 곽
 
메이븐 기본 이해
메이븐 기본 이해메이븐 기본 이해
메이븐 기본 이해중선 곽
 
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템Park JoongSoo
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodedpTablo
 
우아한테크세미나-우아한멀티모듈
우아한테크세미나-우아한멀티모듈우아한테크세미나-우아한멀티모듈
우아한테크세미나-우아한멀티모듈용근 권
 
Java Build Tool
Java Build ToolJava Build Tool
Java Build Tool용근 권
 
bamboo 로 PHP 프로젝트 지속적인 배포
bamboo 로 PHP 프로젝트 지속적인 배포bamboo 로 PHP 프로젝트 지속적인 배포
bamboo 로 PHP 프로젝트 지속적인 배포KwangSeob Jeong
 
실시간으로 안드로이드 프론트엔드 작업하기
실시간으로 안드로이드 프론트엔드 작업하기실시간으로 안드로이드 프론트엔드 작업하기
실시간으로 안드로이드 프론트엔드 작업하기Haze Lee
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: YeomanJae Sung Park
 
CLT 소스품질 Jenkins 사용가이드
CLT 소스품질 Jenkins 사용가이드CLT 소스품질 Jenkins 사용가이드
CLT 소스품질 Jenkins 사용가이드jSoboro
 
[네이버오픈소스세미나] Next Generation Spring Security OAuth2.0 - 이명현
[네이버오픈소스세미나] Next Generation Spring Security OAuth2.0 - 이명현[네이버오픈소스세미나] Next Generation Spring Security OAuth2.0 - 이명현
[네이버오픈소스세미나] Next Generation Spring Security OAuth2.0 - 이명현NAVER Engineering
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기KwangSeob Jeong
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드수정 김
 
오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5Taegon Kim
 
개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술중선 곽
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨KwangSeob Jeong
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationDonghyun Seo
 

Mais procurados (19)

오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
 
메이븐 기본 이해
메이븐 기본 이해메이븐 기본 이해
메이븐 기본 이해
 
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCode
 
우아한테크세미나-우아한멀티모듈
우아한테크세미나-우아한멀티모듈우아한테크세미나-우아한멀티모듈
우아한테크세미나-우아한멀티모듈
 
Java Build Tool
Java Build ToolJava Build Tool
Java Build Tool
 
bamboo 로 PHP 프로젝트 지속적인 배포
bamboo 로 PHP 프로젝트 지속적인 배포bamboo 로 PHP 프로젝트 지속적인 배포
bamboo 로 PHP 프로젝트 지속적인 배포
 
실시간으로 안드로이드 프론트엔드 작업하기
실시간으로 안드로이드 프론트엔드 작업하기실시간으로 안드로이드 프론트엔드 작업하기
실시간으로 안드로이드 프론트엔드 작업하기
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 
CLT 소스품질 Jenkins 사용가이드
CLT 소스품질 Jenkins 사용가이드CLT 소스품질 Jenkins 사용가이드
CLT 소스품질 Jenkins 사용가이드
 
[네이버오픈소스세미나] Next Generation Spring Security OAuth2.0 - 이명현
[네이버오픈소스세미나] Next Generation Spring Security OAuth2.0 - 이명현[네이버오픈소스세미나] Next Generation Spring Security OAuth2.0 - 이명현
[네이버오픈소스세미나] Next Generation Spring Security OAuth2.0 - 이명현
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
 
오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5
 
개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Learning Laravel
Learning LaravelLearning Laravel
Learning Laravel
 

Semelhante a Maven

양파지기 - Ant, Maven, Gradle
양파지기 - Ant, Maven, Gradle양파지기 - Ant, Maven, Gradle
양파지기 - Ant, Maven, Gradleyong geun Kwon
 
N02 app engineseminar
N02 app engineseminarN02 app engineseminar
N02 app engineseminarSun-Jin Jang
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재Hankyo
 
테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션SangIn Choung
 
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)SangIn Choung
 
Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정leejungwang
 
ALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOpsALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOpsTaeyoung Kim
 
Spring vs. spring boot
Spring vs. spring bootSpring vs. spring boot
Spring vs. spring bootChloeChoi23
 
주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf
주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf
주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf병근 손
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debuggingJongwon Han
 
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화KTH, 케이티하이텔
 
Spring3 발표자료 - 김연수
Spring3 발표자료 - 김연수Spring3 발표자료 - 김연수
Spring3 발표자료 - 김연수Yeon Soo Kim
 
iOS Architecture.pdf
iOS Architecture.pdfiOS Architecture.pdf
iOS Architecture.pdfssuser86e2971
 
Google App Engine의 이해
Google App Engine의 이해Google App Engine의 이해
Google App Engine의 이해Sun-Jin Jang
 
Create App Easier With SVC Pattern - DroidKnights 2019 @Seoul
Create App Easier With SVC Pattern - DroidKnights 2019 @SeoulCreate App Easier With SVC Pattern - DroidKnights 2019 @Seoul
Create App Easier With SVC Pattern - DroidKnights 2019 @SeoulBansook Nam
 
WordCamp 2012 Seoul - Plugin
WordCamp 2012 Seoul - PluginWordCamp 2012 Seoul - Plugin
WordCamp 2012 Seoul - PluginMinHyeong Lim
 
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지GDG Korea
 

Semelhante a Maven (20)

양파지기 - Ant, Maven, Gradle
양파지기 - Ant, Maven, Gradle양파지기 - Ant, Maven, Gradle
양파지기 - Ant, Maven, Gradle
 
N02 app engineseminar
N02 app engineseminarN02 app engineseminar
N02 app engineseminar
 
okspring3x
okspring3xokspring3x
okspring3x
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
 
테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션
 
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)
 
Android QA Process
Android QA ProcessAndroid QA Process
Android QA Process
 
Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정
 
ALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOpsALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOps
 
Spring vs. spring boot
Spring vs. spring bootSpring vs. spring boot
Spring vs. spring boot
 
주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf
주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf
주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging
 
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
 
Spring3 발표자료 - 김연수
Spring3 발표자료 - 김연수Spring3 발표자료 - 김연수
Spring3 발표자료 - 김연수
 
iOS Architecture.pdf
iOS Architecture.pdfiOS Architecture.pdf
iOS Architecture.pdf
 
Google App Engine의 이해
Google App Engine의 이해Google App Engine의 이해
Google App Engine의 이해
 
Create App Easier With SVC Pattern - DroidKnights 2019 @Seoul
Create App Easier With SVC Pattern - DroidKnights 2019 @SeoulCreate App Easier With SVC Pattern - DroidKnights 2019 @Seoul
Create App Easier With SVC Pattern - DroidKnights 2019 @Seoul
 
WordCamp 2012 Seoul - Plugin
WordCamp 2012 Seoul - PluginWordCamp 2012 Seoul - Plugin
WordCamp 2012 Seoul - Plugin
 
ecdevday4
ecdevday4ecdevday4
ecdevday4
 
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
 

Mais de Suan Lee

HTML5 & CSS 살펴보기
HTML5 & CSS  살펴보기HTML5 & CSS  살펴보기
HTML5 & CSS 살펴보기Suan Lee
 
Pmp 자격증 도전기
Pmp 자격증 도전기Pmp 자격증 도전기
Pmp 자격증 도전기Suan Lee
 
ApprenticeshipPatterns/Chapter5
ApprenticeshipPatterns/Chapter5ApprenticeshipPatterns/Chapter5
ApprenticeshipPatterns/Chapter5Suan Lee
 
데이터베이스패턴
데이터베이스패턴데이터베이스패턴
데이터베이스패턴Suan Lee
 
maven 소개
maven 소개maven 소개
maven 소개Suan Lee
 
Spring IoC
Spring IoCSpring IoC
Spring IoCSuan Lee
 

Mais de Suan Lee (6)

HTML5 & CSS 살펴보기
HTML5 & CSS  살펴보기HTML5 & CSS  살펴보기
HTML5 & CSS 살펴보기
 
Pmp 자격증 도전기
Pmp 자격증 도전기Pmp 자격증 도전기
Pmp 자격증 도전기
 
ApprenticeshipPatterns/Chapter5
ApprenticeshipPatterns/Chapter5ApprenticeshipPatterns/Chapter5
ApprenticeshipPatterns/Chapter5
 
데이터베이스패턴
데이터베이스패턴데이터베이스패턴
데이터베이스패턴
 
maven 소개
maven 소개maven 소개
maven 소개
 
Spring IoC
Spring IoCSpring IoC
Spring IoC
 

Maven

  • 1. Maven 소개 이수안(http://inch772.blog.me) 아꿈사(http://cafe.naver.com/architect1.cafe)
  • 2. Maven이란? Maven의 주요기능 Project Object Model The Build Life Cycle Maven Plugins The Dependency Mechanism Repositories
  • 3. Maven? [NOUN] anexpertorconnoisseur [from 네이버사전] A maven (also mavin) is a trusted expert in a particular field, who seeks to pass knowledge on to others. The word maven comes from the Hebrew, via Yiddish, and means one who understands, based on an accumulation of knowledge [from Wikipedia]
  • 4. 전문가 코딩하던 노인 http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=52&MAEULNO=20&no=44921
  • 5. Maven? 프로젝트의 빌드 관리하는 툴 스크립트 대신 설정 어떻게 할지 보단 무엇을할지 빌드로직을재사용 의존 성 관리를 응집성 있게
  • 6. Maven 의 목표 빌드 프로세스를 쉽게만들기 균일한 빌드 시스템을 제공 Best Practices 제공 프로젝트의 정보를 제공
  • 7. Maven이란? Maven의 주요기능 Project Object Model The Build Life Cycle Maven Plugins The Dependency Mechanism Repositories
  • 8. Project Object Model Define What, not How 빌드에 관련된 모든 정보는 pom.xml 에 정의
  • 9.
  • 12.
  • 13. Maven이란? Maven의 주요기능 Project Object Model The Build Life Cycle Maven Plugins The Dependency Mechanism Repositories
  • 15. Build Life Cycle 각 Build 단계는 Plug-in을 실행하여 원하는 작업을 수행한다. <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.0.2</version> <executions> <execution> <id>default-compile</id> <phase>compile</phase> <goals> <goal>compile</goal> </goals> </execution> <execution> <id>default-testCompile</id> <phase>test-compile</phase> <goals> <goal>testCompile</goal> </goals> </execution> </executions> </plugin>
  • 16. Build Life Cycle 거의 기본 설정으로 80% 커버 만약 개별적인 빌드 내용이 필요하면 확장가능한 플러그인 이용
  • 17. Build Life Cycle Plug- in들
  • 18. Maven이란? Maven의 주요기능 Project Object Model The Build Life Cycle Maven Plugins The Dependency Mechanism Repositories
  • 20. The Dependency Mechanism 필요한 의존성을 정의만 하면 됨 Maven은.. 연관된 의존성 다운 컴파일과 테스트 과정에서 다운된 의존성 연결
  • 21. Repository Group artifact version
  • 24. 정리 Maven은 프로젝트 빌드 툴 POM.XML 무엇을 할지 설정 정보가 정의 됨 빌드는Life Cycle에 정의된 순서로 진행됨 Life Cycle 단계는 Plug-In을 호출하여 작업수행 의존 되는 라이브러리만 정의하면 알아서 의존성 관계를 구현해줌 의존 되는 라이브러리는원격/로컬의 Repository 에서 얻어옴
  • 25. 참고 Apace Maven http://maven.apache.org/ Apache Ant http://ant.apache.org The Maven2 Revolution http://www.loria.fr/~molli/pmwiki/uploads/Main/maven.pdf