1.pom.xml概念
POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml。作用类似ant的build.xml文件,功能更强大。该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。事实上,在Maven世界中,project可以什么都没有,甚至没有代码,但是必须包含pom.xml文件。

成都创新互联公司自2013年创立以来,是专业互联网技术服务公司,拥有项目成都网站设计、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元北镇做网站,已为上家服务,为北镇各地企业和个人服务,联系电话:18980820575
2.基本配置
(1)
 (2) 
4.0.0 pom的版本,这是Maven 2&3唯一支持的pom版本,而且不能忽略.
(3)Maven坐标
A.
B. 
C. 
主版本号.次版本号.修订版本号
- 主版本号:代表架构变动或者不兼容的实现.
- 次版本号:兼容性修改,功能增强.
- 修订版本号:bug修复.
版本号的后缀意味着项目的不同阶段:
- SNAPSHOT:开发中的版本
- RELEASE:正式发布版
- M1,M2:M指里程碑,表示即将发布
- RC:Release Candidate,发布候选
- GA:General Availablity,基本可用版本
(4)
打包类型,没有提供的话默认值为jar,常见的有jar与war,也可以取值:
- maven-plugin
- pom
- ejb
- ear
- rar
(5)POM 关系
Maven的一个强大之处是处理项目关系的方式,可以通过一个公共的本地仓库去解决问题.
A.依赖
POM的基础就是依赖列表,Maven下载与在编译时链接依赖与其他所需要的目标,而且可以处理传递性依赖,使列表可以专注于项目所需的依赖.依赖放在
    
        ....
     
    
        ....
     
 一个
a.与 
对应项目坐标
b.
版本
c.
可用于配置不同jdk的
d.
对应的依赖类型,默认为jar,通常对应与
e.
scope表示类库与项目的关系,可以取以下5个值:
- compile:默认值,编译依赖使其在所有类路径中可用,而且这些依赖项会传递到其他依赖项目,在编译和打包时都需要此类库.
- provided:类似compile,但是期望JDK或一个容器会在运行时提供,仅在编译和测试类路径上可用,不可传递.
- runtime:在运行时与测试类路径中可用,在编译类路径中不可用.
- test:测试编译与执行阶段可用,不可传递.
- system:类似于provided,但必须显式提供jar包.
f.
当
g.
标记依赖的可选状态.
h.
排除不需要的依赖,包含子元素
B.继承
使用
    org.springframework.boot 
    spring-boot-starter-parent 
    2.2.1.RELEASE 
 子pom会继承父pom的
- groupId
- version
- description
- url
- inceptionYear
- organization
- licenses
- developers
- contributors
- mailingLists
- scm
- issueManagement
- ciManagement
- properties
- dependencyManagement
- dependencies
- repositories
- pluginRepositories
- build
- reporting
- profiles
但不能继承:
- artifactId
- name
- prerequisites
另外,就像java中所有类都继承于java.lang.Object一样,所有POM都有一个"Super POM",pom都从它继承而来,下面是Maven3.5.4的"Super pom":
  4.0.0 
  
    
      central 
      Central Repository 
      https://repo.maven.apache.org/maven2 
      default 
      
        false 
       
     
   
  
    
      central 
      Central Repository 
      https://repo.maven.apache.org/maven2 
      default 
      
        false 
       
      
        never 
       
     
   
  
    ${project.basedir}/target 
    ${project.build.directory}/classes 
    ${project.artifactId}-${project.version} 
    ${project.build.directory}/test-classes 
    ${project.basedir}/src/main/java 
    ${project.basedir}/src/main/scripts 
    ${project.basedir}/src/test/java 
    
      
        ${project.basedir}/src/main/resources 
       
     
    
      
        ${project.basedir}/src/test/resources 
       
     
    
      
      
      
        
          maven-antrun-plugin 
          1.3 
         
        
          maven-assembly-plugin 
          2.2-beta-5 
         
        
          maven-dependency-plugin 
          2.8 
         
        
          maven-release-plugin 
          2.5.3 
         
       
     
   
  
    ${project.build.directory}/site 
   
  
    
    
      release-profile 
      
        
          performRelease 
          true 
         
       
      
        
          
            true 
            maven-source-plugin 
            
              
                attach-sources 
                
                  jar-no-fork 
                 
               
             
           
          
            true 
            maven-javadoc-plugin 
            
              
                attach-javadocs 
                
                  jar 
                 
               
             
           
          
            true 
            maven-deploy-plugin 
            
              true 
             
           
         
       
     
   
 C.聚合(或多模块)
模块是pom列出的项目,并作为一个组执行,每个模块通过pom文件或项目的相对路径进行列出.
    my-project 
    another-project 
    third-project/pom-example.xml 
 不需要考虑模块间的依赖关系,Maven会对其进行拓扑排序以便在依赖模块之前构建依赖关系.
(6)属性
属性是Maven中的值占位符,像Ant一样,可以以
${x}这样的形式在pom.xml的任何位置访问一个值,也可以被用作默认值使用.
有5种形式使用值:
①env.x
env会使用当前shell的环境变量的值.
例如
${env.PATH}②project.x
${project.version}③settings.x
使用settings.xml中的元素的值
${settings.offline}④java.x
java系统属性值,通过java.lang.System.getProperties()获取,如
${java.home}⑤x
直接使用x,用的是
    AAAAA 
 ${aaa}3.构建配置
(1)BaseBuild元素
A. 
目标的默认值,可以取值install,copile
B. 
构建产生的文件存放目录
C. 
构建最终产生的项目名字,但有可能会被更改.
D.
定义一组
(2)资源
A.
描述每个资源的根元素.
B.
构建资源的位置,对于jar包放在META-INF里面.
C.
取值true或false,表示是否开启过滤
D.
资源位置.
E.
指定要包含的资源,使用*作为通配符.
F.
与include相反,要排除的资源列表.
(3)插件
A.与 
与上面的
B.
与上面的
C.
取值true或false,表示是否加载扩展,默认为false.
D.
取值ture或false,是否应用pom的继承关系,默认true.
E.
插件项的相关配置,可以配置
F.
引入插件的依赖,与前面的
G.
插件可能有多个目标,
(4)插件管理
(5)目录
可以为pom设置各种目录,比如
A.项目源码目录
构建项目时会编译该目录的源码,是相对于pom.xml的相对路径.
B.测试源码目录
测试时会编译其中的源码,也是相对于pom.xml的相对路径.
C.class目录
这里存放被编译过的class文件.
D.测试class
存放测试文件编译后的class文件.
(6)扩展
    
        
            org.apache.maven.wagon
            wagon-ftp 
            3.3.4 
          
     
 (7)报表
A.
是否包含默认报表.
B.
报表存放位置.
C.
报表包含的插件以及配置.
D.
包含一组
4.项目信息
(1)许可证
A.
名称.
B.
官方license页面的url.
C.
项目分发的方式,可以选择
- repo:从Maven仓库下载.
- manual:手动安装.
D.
一些补充信息.
(2)组织
(3)开发者
A.
开发者id.
B.
姓名.
C.
邮箱.
D.
主页url.
E.
所属组织.
F.
所属组织的主页url.
G.
角色,包含一组
H.
时区,可以以America/New_York或Europe/Berlin这样的形式,或者设置一个整数,范围[-11,12].
I.
开发者属性,如如何处理即时消息等.
(4)贡献者
5.环境配置
(1)问题管理
(2)持续集成管理
A.
持续集成系统的名称.
B.
持续集成系统的url.
C.
包含一组
a.
如何发送通知,比如可以取值mail.
b.
取值true/false,错误时发送.
c.
取值true/false,失败时发送.
d.
取值true/false,成功时发送.
e.
取值true/false,发生警告时发送.
f.
相关配置,例如可以添加
,发送的地址.(3)邮件列表
A.
邮件名称.
B.
订阅邮件地址或链接.
C.
取消订阅邮件或链接.
D.
要发送的邮件地址.
E.
查看旧的邮件的url.
(4)软件配置管理(SCM)
A.与 
描述如何通过Maven连接到版本控制系统,其中connection需要读权限,developConnection需要写权限.
B.
代码标签,默认为HEAD.
C.
公开的可浏览的仓库,例如ViewVC或Fisheye.
(5)前提条件
    
        
            org.apache.maven.plugins 
            maven-enforcer-plugin 
            3.0.0-M3 
            
                
                enforce-maven 
                
                    enforce 
                 
                
                
                    
                        3.0 
                     
                     
             
         
       
     
   
 代替.
(6)仓库
A.
如何处理远征仓库的发布版本,包含:
 true/false,是否启用.
 更新频率,Maven将本地pom的时间戳与远程进行比较,可以选择:always,daily(默认),interval:X(X是一个整数,表示X分钟),never.
 校验错误或校验失败时的策略,可以选择ignore,fail或warn.
B.
如何处理远程仓库的快照版本,包含的元素与
C.
远程仓库的标识符.
D.
远程仓库的名称.
E.
远程仓库的url.
F.
仓库布局类型,可以是default或legacy,Maven2.x为仓库提供了默认布局.
(7)插件仓库
(8)分发管理
A.仓库
- :唯一版本,取值true/false,表示是否生成一个唯一版本号或是使用部分地址作为版本号. 
- :仓库名字. 
- :仓库id. 
- :指定仓库位置. 
- :布局,取值default或legacy. 
还有一个叫
B.站点部署
- :站点名称. 
- :站点id. 
- :站点url. 
C.重定位
- :新的 - . 
- :新的 - . 
- :新版本. 
- :提示信息. 
(9)配置文件
- :配置文件的id,比如测试的可以叫test. 
- :相关构建信息. 
- :模块信息. 
- :远程仓库信息. 
- :插件仓库信息. 
- :依赖信息. 
- :报表信息. 
- :依赖管理信息. 
- :分发管理 
- :activation是profile的关键,profile的强大之处是某些情况下才可以修改基本pom,这些情况通过activation指定. 
A.
是否默认激活,true或false.
B.
指定jdk版本.
C.
D.
若Maven检测到该属性就会激活该属性所在的配置文件,可以指定
E.
有
文章题目:pom.xml的配置和管理
链接地址:http://www.scyingshan.cn/article/gpeeic.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 