Maven POM(プロジェクト対象モデル)を詳しく説明する。
36853 ワード
POM(Project Object Model)は、Mavenプロジェクトの基本的なワークユニットであり、XMLファイルであり、プロジェクトの基本的な情報を含み、プロジェクトがどのように構築されるか、プロジェクト依存性を宣言するために使用される。
タスクや目標を実行する場合、Mavenは現在のディレクトリでPOMを検索します。POMを読み込み、必要な構成情報を取得して、ターゲットを実行します。
POMでは、以下の構成を指定できます。プロジェクト依存 プラグイン 実行目標 プロジェクト構築profile プロジェクトバージョン プロジェクト開発者リスト 関連メーリングリスト情報
POMを作成する前に、まずプロジェクトグループ(groupId)、プロジェクトの固有IDについて説明する必要があります。
ノード
説明
プロジェクト
工事のルートラベル。
model Version
モデルバージョンは4.0に設定する必要があります。
グループId
これは工事グループの標識です。それは組織またはプロジェクトの中では通常唯一です。例えば、銀行組織companyname.project-groupはすべての銀行関連プロジェクトを持っています。
アーティファクト
これは工事の標識です。通常は工事の名前です。例えば、消費者銀行。groupIdとartfratIdは一緒に倉庫内のartflifetの位置を定義しています。
version
これはプロジェクトのバージョン番号です。アーティファクトの倉庫では、異なるバージョンを区別するために使用されます。たとえば:
父の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を作成します。内容は以下の通りです。
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の結果はコンソールに表示されるように、引き継ぎ、補間された後、構成を有効にします。
タスクや目標を実行する場合、Mavenは現在のディレクトリでPOMを検索します。POMを読み込み、必要な構成情報を取得して、ターゲットを実行します。
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.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(プロジェクト対象モデル)に関する資料は他の関連記事に注目してください。