MAVEN pom. xml 해독

5266 단어
POM 의 전 칭 은 Project 입 니 다. Object  모델, 즉 프로젝트 대상 모델.pom. xml 는 maven 의 프로젝트 설명 파일 로 antx 의 procject. xml 파일 과 유사 합 니 다.pom. xml 파일 은 프로젝트 의 정 보 를 xml 형식 으로 설명 하 는데 프로젝트 이름, 버 전, 프로젝트 id, 프로젝트 의 의존 관계, 컴 파일 환경, 지속 적 인 통합, 프로젝트 팀, 기여 관리, 보고서 생 성 등 을 포함한다.한 마디 로 하면 모든 항목 정 보 를 포함한다.
1. pom. xml 기본 설정
<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>my-project</artifactId>
  <version>1.0</version>
</project>

modelVersion          이 POM 파일 이 어떤 버 전의 항목 설명 자 를 따 르 는 지 설명 합 니 다. 
groupId                     하나의 항목 에 대한 보편적 인 유일한 식별 자.보통 정확 한 가방 의 이름 으로 다른 항목 의 유사 한 이름과 구분 합 니 다 (예 를 들 어 org. apache. maven).  
artifactId                   주어진 groupID 에서 아 티 팩 트 지정 한 식별 자 는 유일한 것 이다. , artifact 프로젝트 에 응용 되 거나 제 작 된 구성 요소 (산출 물) 를 대표 합 니 다.
version                     현재 프로젝트 에서 생 성 된 아 티 팩 트 버 전
상기 4 개의 원소 중 하나 가 없어 서 는 안 되 며, 그 중 groupId, artifactId, version 설명 에 의존 하 는 항목 의 유일한 표지 입 니 다.
2. pom. xml 파일 구조
<project>
  <modelVersion>4.0.0</modelVersion>
  <!- The Basics          ->
  <groupId>...</groupId>
  <artifactId>...</artifactId>
  <version>...</version>
  <packaging>...</packaging>
  <dependencies>...</dependencies>
  <parent>...</parent>
  <dependencyManagement>...</dependencyManagement>
  <modules>...</modules>
  <properties>...</properties>
  <!- Build Settings         ->
  <build>...</build>
  <reporting>...</reporting>
  <!- More Project Information        ->
  <name>...</name>
  <description>...</description>
  <url>...</url>
  <inceptionYear>...</inceptionYear>
  <licenses>...</licenses>
  <organization>...</organization>
  <developers>...</developers>
  <contributors>...</contributors>
  <!-- Environment Settings  ->
  <issueManagement>...</issueManagement>
  <ciManagement>...</ciManagement>
  <mailingLists>...</mailingLists> 
  <scm>...</scm>
  <prerequisites>...</prerequisites>
  <repositories>...</repositories>
  <pluginRepositories>...</pluginRepositories>
  <distributionManagement>...</distributionManagement>
  <profiles>...</profiles>
</project>

3. POM 의 중요 한 3 가지 관계.
POM 은 세 가지 중요 한 관계 가 있 는데 그것 이 바로 의존, 계승, 합성 이다. 
3.1. 의존 관계 
<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.0</version>
      <type>jar</type>
      <scope>test</scope>
      <optional>true</optional>
    </dependency>
    ...
</dependencies>

maven 라 이브 러 리 에 없 는 jar 패키지 에 의존 하려 면 방법 이 간단 합 니 다. 이 jar 패 키 지 를 다음 명령 으로 로 컬 maven 라 이브 러 리 에 설치 하 는 것 입 니 다: mvn install:install-file -Dfile=my.jar -DgroupId=mygroup -DartifactId=myartifactId -Dversion=1
의존 관 계 를 더 하면 된다. 
3.2. 상속 관계 
또 하나의 강력 한 변화, 마 븐 이 가 져 온 건 프로젝트 상속 이 야.
3.2.1. 부모 항목 정의 
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mygroup </groupId>
  <artifactId>my-parent</artifactId>
  <version>2.0</version>
  <packaging>pom</packaging>
</project>
packaging 형식 pom 은 parent 와 여러 항목 을 합성 하 는 데 사 용 됩 니 다. 물론 우리 가 만 든 Maven 프로젝트 의 pom 은 모두 Maven 의 슈퍼 를 계승 합 니 다. pom, 프로젝트 (부모 또는 자식) 의 완전한 pom 구 조 를 보고 싶 으 면 실행 할 수 있 습 니 다:  
mvn help:effective-pom
됐 습 니 다.
3.2.2. 하위 항목 설정 
<project>
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.mygroup </groupId>
   <artifactId>my-child-project</artifactId>
   <parent>
        <groupId>com.mygroup </groupId>
        <artifactId>my-parent</artifactId>
        <version>2.0</version>
        <relativePath>../my-parent</relativePath>
    </parent>
</project>

relativePath 는 필요 하지 않 지만 parent 의 디 렉 터 리 를 가리 키 는 데 사용 되 며 빠 른 조회 에 사 용 됩 니 다.  
3.3. 합성 관계 
한 항목 에 여러 개의 모듈 이 있 는데, 이 를 다 중 모듈 또는 합성 프로젝트 라 고도 한다.    다음 과 같은 정의:
<project>
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.mygroup </groupId>
   <artifactId>my-parent</artifactId>
   <version>2.0</version>
   <modules>
       <module>my-child-project1<module>
       <module>my-child-project2<module>
   </modules>
</project>

모듈 하위 항목 의 상대 경 로 를 설명 합 니 다. 。

좋은 웹페이지 즐겨찾기