Maven POM(プロジェクト対象モデル)を詳しく説明する。


POM(Project Object Model)は、Mavenプロジェクトの基本的なワークユニットであり、XMLファイルであり、プロジェクトの基本的な情報を含み、プロジェクトがどのように構築されるか、プロジェクト依存性を宣言するために使用される。
タスクや目標を実行する場合、Mavenは現在のディレクトリでPOMを検索します。POMを読み込み、必要な構成情報を取得して、ターゲットを実行します。
POMでは、以下の構成を指定できます。
  • プロジェクト依存
  • プラグイン
  • 実行目標
  • プロジェクト構築profile
  • プロジェクトバージョン
  • プロジェクト開発者リスト
  • 関連メーリングリスト情報
  • POMを作成する前に、まずプロジェクトグループ(groupId)、プロジェクトの固有IDについて説明する必要があります。
    
    <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>
     <!--            ,                ,  com.companyname.project-group,maven        jar      :/com/companyname/project-group -->
     <groupId>com.companyname.project-group</groupId>
     
     <!--      ID,  groupId        ,   artifactId     -->
     <artifactId>project</artifactId>
     
     <!--     -->
     <version>1.0</version>
    </project>
    すべてのPOMファイルにはproject要素と三つの必須フィールドが必要です。groupId、artiftId、version。
    ノード
    説明
    プロジェクト
    工事のルートラベル。
    model Version
    モデルバージョンは4.0に設定する必要があります。
    グループId
    これは工事グループの標識です。それは組織またはプロジェクトの中では通常唯一です。例えば、銀行組織companyname.project-groupはすべての銀行関連プロジェクトを持っています。
    アーティファクト
    これは工事の標識です。通常は工事の名前です。例えば、消費者銀行。groupIdとartfratIdは一緒に倉庫内のartflifetの位置を定義しています。
    version
    これはプロジェクトのバージョン番号です。アーティファクトの倉庫では、異なるバージョンを区別するために使用されます。たとえば:
    
    com.company.bank:consumer-banking:1.0
    com.company.bank:consumer-banking:1.1
    父(Super)POM
    父のPOMは、MavenのデフォルトのPOMです。すべてのPOMは親POMから継承されている(この親POMが明示的に定義されているかどうかにかかわらず)。親POMは、いくつかのデフォルトの設定を引き継ぐことができます。したがって、MavenがPOMの依存性をダウンロードする必要があると発見した場合、Super POMに配置されたデフォルトの倉庫http://repo1.maven.org/maven2にダウンロードされる。
    Mavenはeffective pomを使って関連目標を実行します。開発者がpom.xmlにできるだけ少ない配置をするように助けます。もちろんこれらの配置は書き換えられます。
    スーパーPOMのデフォルト設定を確認するために以下のコマンドを使用します。
    mvn help:effective-pom
    次にカタログMVN/projectを作成し、このディレクトリの下で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>
     <!--            ,                ,  com.companyname.project-group,maven        jar      :/com/companyname/project-group -->
     <groupId>com.companyname.project-group</groupId>
     
     <!--      ID,  groupId        ,   artifactId     -->
     <artifactId>project</artifactId>
     
     <!--     -->
     <version>1.0</version>
    </project>
    コマンドコンソールでMVN/projectディレクトリに入り、以下のコマンドを実行します。
    C:\MVN\project>mvn help:effective-pom
    Mavenは処理を開始し、effective-pomを表示します。
    [INFO]Scanning for project s…
    Downloading:https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom

    [INFO]----------------------------------------------
    [INFO]BUILD SUCCESS
    [INFO]----------------------------------------------
    [INFO]Total time:01:36 min
    [INFO]Finished at:2018-09-05 T 11:31:28+08:00
    [INFO]Finalメモリ:15 M/149 M
    [INFO]----------------------------------------------
    Effective POMの結果はコンソールに表示されるように、引き継ぎ、補間された後、構成を有効にします。
    
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- ================================================================= -->
    <!--         -->
    <!-- Generated by Maven Help Plugin on 2012-07-05T11:41:51  -->
    <!-- See: http://maven.apache.org/plugins/maven-help-plugin/  -->
    <!--         -->
    <!-- ================================================================= -->
     
    <!-- ================================================================= -->
    <!--         -->
    <!-- Effective POM for project      -->
    <!-- 'com.companyname.project-group:project-name:jar:1.0'  -->
    <!--         -->
    <!-- ================================================================= -->
     
    <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 h
    ttp://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.companyname.project-group</groupId>
     <artifactId>project</artifactId>
     <version>1.0</version>
     <build>
     <sourceDirectory>C:\MVN\project\src\main\java</sourceDirectory>
     <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
     <testSourceDirectory>C:\MVN\project\src\test\java</testSourceDirectory>
     <outputDirectory>C:\MVN\project\target\classes</outputDirectory>
     <testOutputDirectory>C:\MVN\project\target\test-classes</testOutputDirectory>
     <resources>
     <resource>
     <mergeId>resource-0</mergeId>
     <directory>C:\MVN\project\src\main\resources</directory>
     </resource>
     </resources>
     <testResources>
     <testResource>
     <mergeId>resource-1</mergeId>
     <directory>C:\MVN\project\src\test\resources</directory>
     </testResource>
     </testResources>
     <directory>C:\MVN\project\target</directory>
     <finalName>project-1.0</finalName>
     <pluginManagement>
     <plugins>
     <plugin>
      <artifactId>maven-antrun-plugin</artifactId>
      <version>1.3</version>
     </plugin>
     <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>2.2-beta-2</version>
     </plugin>
     <plugin>
      <artifactId>maven-clean-plugin</artifactId>
      <version>2.2</version>
     </plugin>
     <plugin>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>2.0.2</version>
     </plugin>
     <plugin>
      <artifactId>maven-dependency-plugin</artifactId>
      <version>2.0</version>
     </plugin>
     <plugin>
      <artifactId>maven-deploy-plugin</artifactId>
      <version>2.4</version>
     </plugin>
     <plugin>
      <artifactId>maven-ear-plugin</artifactId>
      <version>2.3.1</version>
     </plugin>
     <plugin>
      <artifactId>maven-ejb-plugin</artifactId>
      <version>2.1</version>
     </plugin>
     <plugin>
      <artifactId>maven-install-plugin</artifactId>
      <version>2.2</version>
     </plugin>
     <plugin>
      <artifactId>maven-jar-plugin</artifactId>
      <version>2.2</version>
     </plugin>
     <plugin>
      <artifactId>maven-javadoc-plugin</artifactId>
      <version>2.5</version>
     </plugin>
     <plugin>
      <artifactId>maven-plugin-plugin</artifactId>
      <version>2.4.3</version>
     </plugin>
     <plugin>
      <artifactId>maven-rar-plugin</artifactId>
      <version>2.2</version>
     </plugin>
     <plugin>
      <artifactId>maven-release-plugin</artifactId>
      <version>2.0-beta-8</version>
     </plugin>
     <plugin>
      <artifactId>maven-resources-plugin</artifactId>
      <version>2.3</version>
     </plugin>
     <plugin>
      <artifactId>maven-site-plugin</artifactId>
      <version>2.0-beta-7</version>
     </plugin>
     <plugin>
      <artifactId>maven-source-plugin</artifactId>
      <version>2.0.4</version>
     </plugin>
     <plugin>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.4.3</version>
     </plugin>
     <plugin>
      <artifactId>maven-war-plugin</artifactId>
      <version>2.1-alpha-2</version>
     </plugin>
     </plugins>
     </pluginManagement>
     <plugins>
     <plugin>
     <artifactId>maven-help-plugin</artifactId>
     <version>2.1.1</version>
     </plugin>
     </plugins>
     </build>
     <repositories>
     <repository>
     <snapshots>
     <enabled>false</enabled>
     </snapshots>
     <id>central</id>
     <name>Maven Repository Switchboard</name>
     <url>http://repo1.maven.org/maven2</url>
     </repository>
     </repositories>
     <pluginRepositories>
     <pluginRepository>
     <releases>
     <updatePolicy>never</updatePolicy>
     </releases>
     <snapshots>
     <enabled>false</enabled>
     </snapshots>
     <id>central</id>
     <name>Maven Plugin Repository</name>
     <url>http://repo1.maven.org/maven2</url>
     </pluginRepository>
     </pluginRepositories>
     <reporting>
     <outputDirectory>C:\MVN\project\target/site</outputDirectory>
     </reporting>
    </project>
    POMラベル大全の詳細
    
    <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.0http://maven.apache.org/maven-v4_0_0.xsd">
     <!--      。               ,                  。     group ID,artifact ID  
     version。 -->
     <parent>
     <!--              -->
     <artifactId />
     <!--                -->
     <groupId />
     <!--           -->
     <version />
     <!--     pom.xml       。                。    ../pom.xml。Maven                 
        pom,            (relativePath  ),       ,             pom。 -->
     <relativePath />
     </parent>
     <!--            POM    。           ,    ,          ,     Maven                  ,     。 -->
     <modelVersion>4.0.0</modelVersion>
     <!--          ,                    。                ,  com.mycompany.app        :/com/mycompany/app -->
     <groupId>asia.banseon</groupId>
     <!--       ,  group ID          。    ,                artifact ID groupID;    
        group ID ,artifact ID       。                ,Maven          :JARs,   ,      WARs 。 -->
     <artifactId>banseon-maven2</artifactId>
     <!--         ,  jar、war、ear、pom。               ,               -->
     <packaging>jar</packaging>
     <!--      ,   :   .   .    -      -->
     <version>1.0-SNAPSHOT</version>
     <!--     , Maven       -->
     <name>banseon-maven</name>
     <!--     URL, Maven       -->
     <url>http://www.baidu.com/banseon</url>
     <!--        , Maven       。         HTML     (  ,CDATA           ,     HTML  
      ),           。          web       ,              ,          。 -->
     <description>A maven project to study maven.</description>
     <!--                 。 -->
     <prerequisites>
     <!--               Maven      -->
     <maven />
     </prerequisites>
     <!--         (Bugzilla, Jira, Scarab,             )    URL,    jira -->
     <issueManagement>
     <!--      (  jira)   , -->
     <system>jira</system>
     <!--             URL -->
     <url>http://jira.baidu.com/banseon</url>
     </issueManagement>
     <!--         -->
     <ciManagement>
     <!--         ,  continuum -->
     <system />
     <!--             URL(         web    )。 -->
     <url />
     <!--     ,        /      。             (  ,  ,  ,  ) -->
     <notifiers>
      <!--      ,      ,        /    -->
      <notifier>
      <!--        -->
      <type />
      <!--          -->
      <sendOnError />
      <!--          -->
      <sendOnFailure />
      <!--          -->
      <sendOnSuccess />
      <!--          -->
      <sendOnWarning />
      <!--     。        -->
      <address />
      <!--      -->
      <configuration />
      </notifier>
     </notifiers>
     </ciManagement>
     <!--      ,4   。               。 -->
     <inceptionYear />
     <!--           -->
     <mailingLists>
     <!--                 。             。 -->
     <mailingList>
      <!--      -->
      <name>Demo</name>
      <!--          ,       ,     ,mailto:          -->
      <post>[email protected]</post>
      <!--          ,       ,     ,mailto:          -->
      <subscribe>[email protected]</subscribe>
      <!--            ,       ,     ,mailto:          -->
      <unsubscribe>[email protected]</unsubscribe>
      <!--          URL -->
      <archive>http:/hi.baidu.com/banseon/demo/dev/</archive>
     </mailingList>
     </mailingLists>
     <!--        -->
     <developers>
     <!--           -->
     <developer>
      <!--SCM             -->
      <id>HELLO WORLD</id>
      <!--         -->
      <name>banseon</name>
      <!--      email -->
      <email>[email protected]</email>
      <!--         URL -->
      <url />
      <!--              ,            -->
      <roles>
      <role>Project Manager</role>
      <role>Architect</role>
      </roles>
      <!--          -->
      <organization>demo</organization>
      <!--          URL -->
      <organizationUrl>http://hi.baidu.com/banseon</organizationUrl>
      <!--       ,           -->
      <properties>
      <dept>No</dept>
      </properties>
      <!--         , -11 12      。 -->
      <timezone>-5</timezone>
     </developer>
     </developers>
     <!--           -->
     <contributors>
     <!--        。  developers/developer   -->
     <contributor>
      <name />
      <email />
      <url />
      <organization />
      <organizationUrl />
      <roles />
      <timezone />
      <properties />
     </contributor>
     </contributors>
     <!--          License  。          license  ,          license  。      license,                   license。 -->
     <licenses>
     <!--      license,       web   license  ,       validation       。 -->
     <license>
      <!--license         -->
      <name>Apache 2</name>
      <!--   license     URL -->
      <url>http://www.baidu.com/banseon/LICENSE-2.0.txt</url>
      <!--         : repo,   Maven    manual,               -->
      <distribution>repo</distribution>
      <!--  license      -->
      <comments>A business-friendly OSS license</comments>
     </license>
     </licenses>
     <!--SCM(Source Control Management)            , Maven web         。 -->
     <scm>
     <!--SCM URL, URL               。    ,  SCMs   URL     。     。 -->
     <connection>
      scm:svn:http://svn.baidu.com/banseon/maven/banseon/banseon-maven2-trunk(dao-trunk)
     </connection>
     <!--       ,  connection  。          -->
     <developerConnection>
      scm:svn:http://svn.baidu.com/banseon/maven/banseon/dao-trunk
     </developerConnection>
     <!--       ,        HEAD -->
     <tag />
     <!--        SCM (  ViewVC  Fisheye) URL。 -->
     <url>http://svn.baidu.com/banseon</url>
     </scm>
     <!--             。Maven       -->
     <organization>
     <!--      -->
     <name>demo</name>
     <!--     URL -->
     <url>http://www.baidu.com/banseon</url>
     </organization>
     <!--          -->
     <build>
     <!--            ,        ,             。       pom.xml     。 -->
     <sourceDirectory />
     <!--              ,          :       ,                 (         ,       )。 -->
     <scriptSourceDirectory />
     <!--                   ,        ,             。       pom.xml     。 -->
     <testSourceDirectory />
     <!--         class       。 -->
     <outputDirectory />
     <!--       class       。 -->
     <testOutputDirectory />
     <!--                -->
     <extensions>
      <!--          。 -->
      <extension>
      <!--     groupId -->
      <groupId />
      <!--     artifactId -->
      <artifactId />
      <!--        -->
      <version />
      </extension>
     </extensions>
     <!--         (Maven2     )      -->
     <defaultGoal />
     <!--                    ,            ,                。 -->
     <resources>
      <!--                        -->
      <resource>
      <!--           。     target/classes  (  ${project.build.outputDirectory})。    
        ,            (org.apache.maven.messages),          org/apache/maven /messages。  ,                  ,       。 -->
      <targetPath />
      <!--            。     properties            ,   filters     。 -->
      <filtering />
      <!--         ,     POM   -->
      <directory />
      <!--       ,  **/*.xml. -->
      <includes />
      <!--       ,  **/*.xml -->
      <excludes />
      </resource>
     </resources>
     <!--                    ,              。 -->
     <testResources>
      <!--                  ,  build/resources/resource      -->
      <testResource>
      <targetPath />
      <filtering />
      <directory />
      <includes />
      <excludes />
      </testResource>
     </testResources>
     <!--               -->
     <directory />
     <!--         ,    ${artifactId}-${version}。 -->
     <finalName />
     <!-- filtering     ,              -->
     <filters />
     <!--              。                         。                     -->
     <pluginManagement>
      <!--        。 -->
      <plugins>
      <!--plugin              。 -->
      <plugin>
       <!--       group ID -->
       <groupId />
       <!--       artifact ID -->
       <artifactId />
       <!--         (     ) -->
       <version />
       <!--        Maven  (          ),      ,         ,        enabled。 -->
       <extensions />
       <!--                 。            。 -->
       <executions>
       <!--execution               -->
       <execution>
        <!--        ,            ,                   -->
        <id />
        <!--              ,    ,                   -->
        <phase />
        <!--        -->
        <goals />
        <!--         POM -->
        <inherited />
        <!--  DOM      -->
        <configuration />
       </execution>
       </executions>
       <!--               -->
       <dependencies>
       <!--  dependencies/dependency   -->
       <dependency>
        ......
       </dependency>
       </dependencies>
       <!--              -->
       <inherited />
       <!--  DOM      -->
       <configuration />
      </plugin>
      </plugins>
     </pluginManagement>
     <!--        -->
     <plugins>
      <!--  build/pluginManagement/plugins/plugin   -->
      <plugin>
      <groupId />
      <artifactId />
      <version />
      <extensions />
      <executions>
       <execution>
       <id />
       <phase />
       <goals />
       <inherited />
       <configuration />
       </execution>
      </executions>
      <dependencies>
       <!--  dependencies/dependency   -->
       <dependency>
       ......
       </dependency>
      </dependencies>
      <goals />
      <inherited />
      <configuration />
      </plugin>
     </plugins>
     </build>
     <!--       profile,     ,        -->
     <profiles>
     <!--                     -->
     <profile>
      <!--          。        ,                 profile。 -->
      <id />
      <!--    profile     。Activation profile     。profile                             ;      activation    。activation       profile     。 -->
      <activation>
      <!--profile          -->
      <activeByDefault />
      <!--    jdk    ,profile   。  ,1.4  JDK1.4,1.4.0_2, !1.4         1.4   JDK。 -->
      <jdk />
      <!--              ,profile   。os                 。 -->
      <os>
       <!--  profile         -->
       <name>Windows XP</name>
       <!--  profile         (  'windows') -->
       <family>Windows</family>
       <!--  profile          -->
       <arch>x86</arch>
       <!--  profile        -->
       <version>5.1.2600</version>
      </os>
      <!--  Maven        (     POM   ${  }  ),          ,Profile     。         ,              profile,                  -->
      <property>
       <!--  profile       -->
       <name>mavenVersion</name>
       <!--  profile      -->
       <value>2.0.3</value>
      </property>
      <!--       ,                 profile。missing        ,         profile。    ,exists          ,       profile。 -->
      <file>
       <!--         ,   profile。 -->
       <exists>/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/
       </exists>
       <!--          ,   profile。 -->
       <missing>/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/
       </missing>
      </file>
      </activation>
      <!--          。  build   -->
      <build>
      <defaultGoal />
      <resources>
       <resource>
       <targetPath />
       <filtering />
       <directory />
       <includes />
       <excludes />
       </resource>
      </resources>
      <testResources>
       <testResource>
       <targetPath />
       <filtering />
       <directory />
       <includes />
       <excludes />
       </testResource>
      </testResources>
      <directory />
      <finalName />
      <filters />
      <pluginManagement>
       <plugins>
       <!--  build/pluginManagement/plugins/plugin   -->
       <plugin>
        <groupId />
        <artifactId />
        <version />
        <extensions />
        <executions>
        <execution>
         <id />
         <phase />
         <goals />
         <inherited />
         <configuration />
        </execution>
        </executions>
        <dependencies>
        <!--  dependencies/dependency   -->
        <dependency>
         ......
        </dependency>
        </dependencies>
        <goals />
        <inherited />
        <configuration />
       </plugin>
       </plugins>
      </pluginManagement>
      <plugins>
       <!--  build/pluginManagement/plugins/plugin   -->
       <plugin>
       <groupId />
       <artifactId />
       <version />
       <extensions />
       <executions>
        <execution>
        <id />
        <phase />
        <goals />
        <inherited />
        <configuration />
        </execution>
       </executions>
       <dependencies>
        <!--  dependencies/dependency   -->
        <dependency>
        ......
        </dependency>
       </dependencies>
       <goals />
       <inherited />
       <configuration />
       </plugin>
      </plugins>
      </build>
      <!--  (       )           。                        -->
      <modules />
      <!--              。 -->
      <repositories>
      <!--  repositories/repository   -->
      <repository>
       <releases>
       <enabled />
       <updatePolicy />
       <checksumPolicy />
       </releases>
       <snapshots>
       <enabled />
       <updatePolicy />
       <checksumPolicy />
       </snapshots>
       <id />
       <name />
       <url />
       <layout />
      </repository>
      </repositories>
      <!--           ,            -->
      <pluginRepositories>
      <!--                .  repositories/repository   -->
      <pluginRepository>
       <releases>
       <enabled />
       <updatePolicy />
       <checksumPolicy />
       </releases>
       <snapshots>
       <enabled />
       <updatePolicy />
       <checksumPolicy />
       </snapshots>
       <id />
       <name />
       <url />
       <layout />
      </pluginRepository>
      </pluginRepositories>
      <!--               。                     。               。       ,        。 -->
      <dependencies>
      <!--  dependencies/dependency   -->
      <dependency>
       ......
      </dependency>
      </dependencies>
      <!--     .   Maven     . -->
      <reports />
      <!--                  。     "mvn site",        。                 。  reporting   -->
      <reporting>
      ......
      </reporting>
      <!--  dependencyManagement   -->
      <dependencyManagement>
      <dependencies>
       <!--  dependencies/dependency   -->
       <dependency>
       ......
       </dependency>
      </dependencies>
      </dependencyManagement>
      <!--  distributionManagement   -->
      <distributionManagement>
      ......
      </distributionManagement>
      <!--  properties   -->
      <properties />
     </profile>
     </profiles>
     <!--  (       )           。                        -->
     <modules />
     <!--              。 -->
     <repositories>
     <!--               -->
     <repository>
      <!--                 -->
      <releases>
      <!--true  false                (   ,   )  。 -->
      <enabled />
      <!--            。Maven     POM   POM    。      :always(  ),daily(  ,  ),interval:X(  X            ),  never(  )。 -->
      <updatePolicy />
      <!-- Maven               :ignore(  ),fail(  ),  warn(  )。 -->
      <checksumPolicy />
      </releases>
      <!--                 。  releases snapshots     ,POM            ,              
        。  ,                         。  repositories/repository/releases   -->
      <snapshots>
      <enabled />
      <updatePolicy />
      <checksumPolicy />
      </snapshots>
      <!--         。       settings.xml           -->
      <id>banseon-repository-proxy</id>
      <!--       -->
      <name>banseon-repository-proxy</name>
      <!--    URL, protocol://hostname/path   -->
      <url>http://192.168.1.169:9999/repository/</url>
      <!--                 -   default(  )  legacy(  )。Maven 2              ;  
       ,Maven 1.x        。              default(  )  legacy(  )。 -->
      <layout>default</layout>
     </repository>
     </repositories>
     <!--           ,            -->
     <pluginRepositories>
     <!--                .  repositories/repository   -->
     <pluginRepository>
      ......
     </pluginRepository>
     </pluginRepositories>
     
     
     <!--               。                     。               。       ,        。 -->
     <dependencies>
     <dependency>
      <!--   group ID -->
      <groupId>org.apache.maven</groupId>
      <!--   artifact ID -->
      <artifactId>maven-artifact</artifactId>
      <!--      。  Maven 2 ,             。 -->
      <version>3.8.1</version>
      <!--     ,     jar。              ,     。                     。              , 
             。       :jar,war,ejb-client test-jar。    extensions  true,     plugin       。             。 -->
      <type>jar</type>
      <!--       。            POM,          。                 。  ,                
      JAR,    Java 1.4   ,     Java 6   ,                 JAR  。 -->
      <classifier></classifier>
      <!--    。        ,             。           。 - compile :    ,     - provided:     ,      jdk      ,   classpath 
      - runtime:          - test:   test      - system:            。  systemPath    
      - systemPath:       system。        - optional:          ,        。          -->
      <scope>test</scope>
      <!--  system    。  ,         ,                 。                 。             。            ,  ${java.home}。 -->
      <systemPath></systemPath>
      <!--        ,         ,           。   maven         ,        。                -->
      <exclusions>
      <exclusion>
       <artifactId>spring-core</artifactId>
       <groupId>org.springframework</groupId>
      </exclusion>
      </exclusions>
      <!--    ,      B  C       ,        B   (    A)       C   。            。 -->
      <optional>true</optional>
     </dependency>
     </dependencies>
     <!--     .   Maven     . -->
     <reports></reports>
     <!--                  。     "mvn site",        。                 。 -->
     <reporting>
     <!--true, ,          。   "    "      。 -->
     <excludeDefaults />
     <!--            。    ${project.build.directory}/site。 -->
     <outputDirectory />
     <!--             。 -->
     <plugins>
      <!--plugin                -->
      <plugin>
      <!--         group ID -->
      <groupId />
      <!--         artifact ID -->
      <artifactId />
      <!--           (     ) -->
      <version />
      <!--              -->
      <inherited />
      <!--        -->
      <configuration />
      <!--         ,            。    (   )         。  , 1,2,3,4,5,6,7,8,9   。1,2,5  A   ,        。2,5,8  B   ,          -->
      <reportSets>
       <!--         ,           -->
       <reportSet>
       <!--          ,POM      -->
       <id />
       <!--       ,          -->
       <configuration />
       <!--         POMs -->
       <inherited />
       <!--             -->
       <reports />
       </reportSet>
      </reportSets>
      </plugin>
     </plugins>
     </reporting>
     <!--                    。               ,            (    group ID  artifact 
     ID  ),  group ID artifact ID           ,   group ID artifact ID         ,          。 -->
     <dependencyManagement>
     <dependencies>
      <!--  dependencies/dependency   -->
      <dependency>
      ......
      </dependency>
     </dependencies>
     </dependencyManagement>
     <!--      ,   mvn deploy         。                                。 -->
     <distributionManagement>
     <!--                    -->
     <repository>
      <!--              (          )?             ?  repositories/repository   -->
      <uniqueVersion />
      <id>banseon-maven2</id>
      <name>banseon maven2</name>
      <url>file://${basedir}/target/deploy</url>
      <layout />
     </repository>
     <!--          ?         ,     repository       ,  distributionManagement/repository   -->
     <snapshotRepository>
      <uniqueVersion />
      <id>banseon-maven2</id>
      <name>Banseon-maven2 Snapshot Repository</name>
      <url>scp://svn.baidu.com/banseon:/usr/local/maven-snapshot</url>
      <layout />
     </snapshotRepository>
     <!--             -->
     <site>
      <!--          ,       settings.xml       -->
      <id>banseon-site</id>
      <!--        -->
      <name>business api website</name>
      <!--     URL, protocol://hostname/path   -->
      <url>
      scp://svn.baidu.com/banseon:/var/www/localhost/banseon-web
      </url>
     </site>
     <!--       URL。       ,        。         :              (  license  )。 -->
     <downloadUrl />
     <!--        group ID artifact ID(         ),            。 -->
     <relocation>
      <!--    group ID -->
      <groupId />
      <!--    artifact ID -->
      <artifactId />
      <!--        -->
      <version />
      <!--      ,         ,    。 -->
      <message />
     </relocation>
     <!--              。             ,           。     :none(  ),converted(       
      Maven 1 POM    ),partner(     Maven 2      ),deployed( Maven 2     ),verified(           )。 -->
     <status />
     </distributionManagement>
     <!--      ,Properties     POM   ,         ( settings.xml     activation     )。   <name>value</name>。 -->
     <properties />
    </project>
    以上が、Maven POM(プロジェクト対象モデル)の詳細です。Maven POM(プロジェクト対象モデル)に関する資料は他の関連記事に注目してください。