티스토리 뷰



# 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

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/02   »
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
글 보관함