栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

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

POM 中可以指定以下配置:

  • 项目依赖
  • 插件
  • 执行目标
  • 项目构建 profile
  • 项目版本
  • 项目开发者列表
  • 相关邮件列表信息

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


 
 
 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,内容如下:


 
 
 4.0.0
 
 com.companyname.project-group
 
 
 project
 
 
 1.0

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

C:MVNproject>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:MVNprojectsrcmainjava
 src/main/scripts
 C:MVNprojectsrctestjava
 C:MVNprojecttargetclasses
 C:MVNprojecttargettest-classes
 
 
 resource-0
 C:MVNprojectsrcmainresources
 
 
 
 
 resource-1
 C:MVNprojectsrctestresources
 
 
 C:MVNprojecttarget
 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:MVNprojecttarget/site
 

POM 标签大全详解


 
 
 
 
 
 
 
 
 
 
 
 
 4.0.0
 
 asia.banseon
 
 banseon-maven2
 
 jar
 
 1.0-SNAPSHOT
 
 banseon-maven
 
 http://www.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://www.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://www.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(项目对象模型)的资料请关注考高分网其它相关文章!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/133090.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号