티스토리 뷰

maven pom 속성정리 - basics 속성 예제 및 설명

<modelVersion>4.0.0</modelVersion>
 
<!-- The Basics -->
<groupId>net.born</groupId>
<artifactId>maven-project</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
    <junit-version>4.12</junit-version>
</properties>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.RELEASE</version>
</parent>
<modules>
    <module>child-maven-project</module>
</modules>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.0.0.RELEASE</version>
        </dependency>
    </dependencies>
</dependencyManagement>
 
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit-version}</version>
        <scope>test</scope>
    </dependency>
</dependencies>



<modelVersion>  : POM 모델의 버전. 가장 최근 버전이 4.0 POM 모델이 변경되지 않으면 수정 할 필요가 없다 
<groupId>       : 프로젝트를 생성하는 조직의 고유 아이디(ex.도메인 이름)
<artifactId>    : 프로젝트를 식별하는 유일한 아이디(ex.프로젝트명)
<version>       : 프로젝트의 현재 버전이다
<packaging>     : 프로젝트를 어떤 형태로 패키징할지 결정한다(jar, war ear, pom등)
<properties>    : 속성은 값을 정의하고 pom내 어디서든 사용할수 있습니다. 사용방법은 ${java.version}
<parent>        : 부모 프로젝트의 정보 - 자식 프로젝트에서 넣는다
<modules>       : 프로젝트를 멀티 모듈를 만들었을 경우 멀티 모듈들의 프로젝트를 적는다
<dependencyManagement>  : 자식 모듈의 모든 종속성에 대한 선언 및 버전이 포함되어 있습니다
                          - 자식모듈과의 충돌 방지
<dependencies.dependency> : 프로젝트와 의존 관계에 있는 라이브러리를 관리
    <groupId>     : 의존 관계 라이브러리의 groupId
    <artifactId>  : 의존 관계 라이브러리의 artifactId
    <version>     : 의존 관계 라이브러리 버전
    <scope>       : 의존 관계 라이브러리의 적용 범위
        <compile> : 기본 스코프. 컴파일 및 배포할 때 같이 제공해야 하는 라이브러리
        <provided>: 컴파일 시점에는 필요하지만 배포할 때 포함할 필요가 없는 라이브러리
        <runtime> : 컴파일 시에는 사용되지 않지만 애플리케이션을 실행할 때 사용 되는 라이브러리
        <test>    : 테스트하는 시점에만 사용하는 라이브러리
        <system>  : 기능은 provided와 동일하며 해당 jar를 명시적으로 정의해줘야 한다
                  jar가 로컬 또는 원격저장소에 있어야 한다
        <import>  : 다른 pom설정 파일에 정의되어 있는 의존 관계 설정을 현재 프로젝트로 가져온다
                  이 범위는 <dependencyManagement> 엘리먼트 영역에 있는 의존관계가 대체된다



댓글
공지사항