详解Maven POM(项目对象模型)

网友投稿 680 2023-05-10

详解Maven POM(项目对象模型)

详解Maven POM(项目对象模型)

POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。

执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。

POM 中可以指定以下配置:

项目依赖

插件

执行目标

项目构建 profile

项目版本

项目开发者列表

相关邮件列表信息

在创建 POM 之前,我们首先需要描述项目组 (groupId), 项目的唯一ID。

xmlns:xsi = "http://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">

4.0.0

com.companyname.project-group

project

1.0

所有 POM 文件都需要 project 元素和三个必需字段:groupId,artifactId,version。

节点

描述

project

工程的根标签。

modelVersion

模型版本需要设置为 4.0。

groupId

这是工程组的标识。它在一个组织或者项目中通常是唯一的。例如,一个银行组织 com.companyname.project-group 拥有所有的和银行相关的项目。

artifactId

这是工程的标识。它通常是工程的名称。例如,消费者银行。groupId 和 artifactId 一起定义了 artifact 在仓库中的位置。

version

这是工程的版本号。在 artifact 的仓库中,它用来区分不同的版本。例如:

com.company.bank:consumer-banking:1.0

com.company.bank:consumer-banking:1.1

父(Super)POM

父(Super)POM是 Maven 默认的 POM。所有的 POM 都继承自一个父 POM(无论是否显式定义了这个父 POM)。父 POM 包含了一些可以被继承的默认设置。因此,当 Maven 发现需要- POM 中的 依赖时,它会到 Super POM 中配置的默认仓库 http://repo1.maven.org/maven2 去-。

Maven 使用 effective pom(Super pom 加上工程自己的配置)来执行相关的目标,它帮助开发者在 pom.xml 中做尽可能少的配置,当然这些配置可以被重写。

使用以下命令来查看 Super POM 默认配置:

mvn help:effective-pom

接下来我们创建目录 MVN/project,在该目录下创建 pom.xml,内容如下:

xmlns:xsi = "http://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">

4.0.0

com.companyname.project-group

project

1.0

在命令控制台,进入 MVN/project 目录,执行以下命令:

C:\MVN\project>mvn help:effective-pom

Maven 将会开始处理并显示 effective-pom。

[INFO] Scanning for projects...

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-05T11:31:28+08:00

[INFO] Final Memory: 15M/149M

[INFO] ------------------------------------------------------------------------

Effective POM 的结果就像在控制台中显示的一样,经过继承、插值之后,使配置生效。

4.0.0

com.companyname.project-group

project

1.0

C:\MVN\project\src\main\java

src/main/scripts

C:\MVN\project\src\test\java

C:\MVN\project\target\classes

C:\MVN\project\target\test-classes

resource-0

C:\MVN\project\src\main\resources

resource-1

C:\MVN\project\src\test\resources

C:\MVN\project\target

project-1.0

maven-antrun-plugin

1.3

maven-assembly-plugin

2.2-beta-2

maven-clean-plugin

2.2

maven-compiler-plugin

2.0.2

maven-dependency-plugin

2.0

maven-deploy-plugin

2.4

maven-ear-plugin

2.3.1

maven-ejb-plugin

2.1

maven-install-plugin

2.2

maven-jar-plugin

2.2

maven-javadoc-plugin

2.5

maven-plugin-plugin

2.4.3

maven-rar-plugin

2.2

maven-release-plugin

2.0-beta-8

maven-resources-plugin

2.3

maven-site-plugin

2.0-beta-7

maven-source-plugin

2.0.4

maven-surefire-plugin

2.4.3

maven-war-plugin

2.1-alpha-2

maven-help-plugin

2.1.1

false

central

Maven Repository Switchboard

http://repo1.maven.org/maven2

never

false

central

Maven Plugin Repository

http://repo1.maven.org/maven2

C:\MVN\project\target/site

POM 标签大全详解

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd">

4.0.0

asia.banseon

banseon-maven2

jar

1.0-SNAPSHOT

banseon-maven

http://baidu.com/banseon

A maven project to study maven.

jira

http://jira.baidu.com/banseon

Demo

banseon@126.com

banseon@126.com

banseon@126.com

http:/hi.baidu.com/banseon/demo/dev/

HELLO WORLD

banseon

banseon@126.com

Project Manager

Architect

demo

http://hi.baidu.com/banseon

No

-5

Apache 2

http://baidu.com/banseon/LICENSE-2.0.txt

repo

A business-friendly OSS license

scm:svn:http://svn.baidu.com/banseon/maven/banseon/banseon-maven2-trunk(dao-trunk)

scm:svn:http://svn.baidu.com/banseon/maven/banseon/dao-trunk

http://svn.baidu.com/banseon

demo

http://baidu.com/banseon

......

......

Windows XP

Windows

x86

5.1.2600

mavenVersion

2.0.3

/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/

/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/

......

......

......

......

......

......

banseon-repository-proxy

banseon-repository-proxy

http://192.168.1.169:9999/repository/

default

......

org.apache.maven

maven-artifact

3.8.1

jar

test

spring-core

org.springframework

true

......

banseon-maven2

banseon maven2

file://${basedir}/target/deploy

banseon-maven2

Banseon-maven2 Snapshot Repository

scp://svn.baidu.com/banseon:/usr/local/maven-snapshot

banseon-site

business api website

scp://svn.baidu.com/banseon:/var/www/localhost/banseon-web

以上就是详解Maven POM(项目对象模型)的详细内容,更多关于Maven POM(项目对象模型)的资料请关注我们其它相关文章!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅谈web服务器项目中request请求和response的相关响应处理
下一篇:IDEA下载并大学生edu邮箱认证免费使用教程(图文)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~