티스토리 뷰
# Ant vs Maven
1. Ant는 비교적 자유도가 높은 편
(Ant : 전처리 / 컴파일 / 패키징 / 테스팅 / 배포 가능)
2. Maven은 정해진 라이프사이클에 의하여 작업 수행하며, 전반적인 프로젝트 관리 기능까지 포함하고 있음.
(Build Tool + Project Management)
# Maven Pattern
1. Build : Source/Test Code Compile
▼
2. Package : WAR/JAR ETC package
▼
3. Test : Unit Test, Test Result Check
▼
4. Report : Build, Package, Test 결과 정리 및 문서화(Report 생성)
▼
5. Release : Build 후 생성된 결과물(Artifact)를 Local / Remote 환경(저장소)에 배포
# Maven Key Concept / Keyword
[MAIN]
1. Plugin : Goal의 집합(Goals) / 메이븐에서 실질적인 실행을 담당
2. LifeCycle : 기본 라이프사이클 / Clean 라이프 사이클 / Site 라이프사이클
3. Dependency : 라이브러리 의존성 관리(의존성 전이 / 스코프 등)
4. Profile : 배포 환경 정의(환경에 따른 배포 내용 정의 가능)
5. POM(Project Object Model)
[그 밖에]
1. Archetype : Template Project를 지칭
2. Phase : 라이프사이클의 각 단계를 지칭
(compile / test / package / install / deploy)
## Maven Project Structure Example
* [PROJECT]
|- src
| |--main
| |--java
| |--resources
| |--test
|- pom.xml
# Maven Plugin Reference URL
(http://maven.apache.org/plugins/index.html)
- resource : http://maven.apache.org/plugins/maven-resources-plugin/
- clean : http://maven.apache.org/plugins/maven-clean-plugin/
- site : http://maven.apache.org/plugins/maven-site-plugin/
- install : http://maven.apache.org/plugins/maven-install-plugin/
- compiler : http://maven.apache.org/plugins/maven-compiler-plugin/
- deploy : http://maven.apache.org/plugins/maven-deploy-plugin/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | ######################################### ## Maven CommandLine Interface Example ## ######################################### 1. 기본 실행 mvn [option] [phase] [plugin:goal] - 기본적으로 option, phase, plugin 등 조합하여 사용 가능 ex) mvn clean test mvn clean package mvn clean install mvn clean dependency:copy-dependencies package 2. clean 라이프사이클, clean phase 실행 mvn clean 3. 기본 라이프사이클 - 각 phase는 이전 단계 및 관련 플러그인의 실행과 관련있음. mvn compile test package install deploy 4. 최상위 pom.xml 내용 확인 - 기본적으로 최상위 pom.xml의 내용을 모두 상속받기 때문에, 확인 필요함. mvn help:effective-pom 5. 의존 라이브러리 리소스 복사(PROJECT#1/targer/dependency) mvn dependency:copy-dependencies 6. 의존성 트리 내용 mvn dependency:tree 7. eclipse 플러그인 사용 예제 mvn eclipse:eclipse : .classpath, .project 파일 생성(이클립스 import 가능) mvn eclipse:clean : 위 파일 삭제 |
# 기타 참고 내용
- pom.xml -> <repositories> 설정에서 <snapshots>, <release> 쪽 설정을 적절하게 바꿔주지 않으면 새로 올려오는 스냅샷이나 릴리즈
를 기본적으로 가져오기 때문에, 의도치 않은 오류가 발생할 수 있다.
[예시]
<repositories>
<repository>
<id>you-snapshots</id>
<url>http://host/repo/snapshots</url>
<snapshots>
<updatePolicy>always / daily / never</updatePolicy>
</snapshots>
<releases>
<updatePolicy>always / daily / never</updatePolicy>
</releases>
</repository>
</repositories>
참고 : http://maven.apache.org/ref/3.2.2/maven-settings/settings.html
'Programing > Java' 카테고리의 다른 글
Netty-In-Action - 1부, 네티 개념과 아키텍처 (0) | 2021.07.18 |
---|---|
이펙티브자바3판 - [2장] 모든 객체의 공통 메서드 (0) | 2019.02.18 |
[Mybatis] Stored Procedure 호출 샘플 (0) | 2016.02.29 |
[MAC] JDK Version 변경 (0) | 2016.01.14 |
[Spring Security] 4장 내용 정리 (0) | 2016.01.02 |
- Total
- Today
- Yesterday
- Squelize.js
- SideBarEnhancements
- ecma
- Spring MVC
- http method
- pm2
- cluster
- Spring
- EJS
- HTTP
- 스프링
- RestTemplate
- springboot
- package.js
- Sublime Text 3
- Kotlin
- Sublime Text 2
- Express.js
- Til
- node.js
- WebFlux
- maven
- implicit prototype chain
- jade
- Handlebars
- Spring Boot
- Package Control
- HttpClient
- tomcat
- Prototype
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |