资讯专栏INFORMATION COLUMN

Maven之POM浅析

IT那活儿 / 1336人阅读
Maven之POM浅析
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

构建工具Maven

java的jar包管理工具在开发中,Maven不仅自动化构建框架,还能抽象构建过程,提供构建任务实现,今天介绍一下在实战中POM的构建以及常用Build操作。


超级POM

Maven 是一款 【构建管理】和【依赖管理】的工具,maven在构建过程中有很多默认的设定。
源文件存放的目录、测试源文件存放的目录、构建输出的目录......等等。
定义的位置就是:超级POM简单来说就是,你可以为工程指定父工程,若不指定父工程,则Maven中会存在默认继承的父工程,即超级POM。
超级POM中定义了默认访问的【中央仓库】、【插件管理】、【打包名称】等等。

使用help:evaluate 查看属性值

3.1 自定义属性
例如自定义了xinju
<properties>
   <project.build.Encoding>UTF-8project.build.Encoding>
   <com.shsnc.maven>xinjucom.shsnc.maven>
properties>
想要获取xinju的值,就可以使用mvn help:evaluate,输入${com.shsnc.maven} 进行查看:
3.2 访问系统环境变量
使用:${env.系统环境变量名}。
例:访问【JAVA_HOME】的path目录
3.3 访问Project 属性
使用表达式 ${project.xxx.xxx} 可以访问当前 POM 中的元素值。
例:获取【artifactId】 的属性值:
例:获取子标签下的【artifactId】的属性值:
3.4 访问 settings 全局配置
${settings.标签名} 可以访问 settings.xml 中配置的元素值。
作 用:
1)在当前pom.xml 文件中引用属性
例如版本管理,一处修改,处处生效:

2)资源过滤功能,在非 Maven 配置文件中引用属性,由 Maven 在处理资源时将引用属性的表达式替换为属性值。


Build标签

本质来说:配置build标签都是对 超级POM配置的叠加。
这里主要介绍一下【声明周期插件】,plugins 标签存放的是默认生命周期中实际会用到的插件,这些插件想必大家都不陌生,所以抛开插件本身不谈,我们来看看 plugin 标签的结构:

executions 标签内可以配置多个 execution 标签,execution 标签内:

  • id:指定唯一标识;
  • phase:关联的生命周期阶段;
  • goals/goal:关联指定生命周期的目标。
其中,goals 标签中可以配置多个 goal 标签,表示一个生命周期环节可以对应当前插件的多个目标。
另外,插件目标的执行过程可以进行配置:

Build标签使用

5.1 指定 JDK 版本
Maven 默认的版本是jdk5,而Lambda表达式是jdk8版本,使用会报错:
插件指定 JDK版本:
编辑通过,可以正常运行:
5.2 SpringBoot 定制化打包
spring-boot-maven-plugin 并不是 Maven 自带的插件,而是SpringBoot提供的,用来改变 Maven 默认的构建行为。具体来说是改变打包的行为。默认情况下Maven 调用 maven-jar-plugin 插件的 jar 目标,生成普通的 jar 包。
普通 jar 包没法使用 java -jar xxx.jar 这样的命令来启动、运行,但是SpringBoot的设计理念就是每一个【微服务】导出为一个 jar 包,这个 jar 包可以使用java -jar xxx.jar这样的命令直接启动运行。
所以SpringBoot提供了spring-boot-maven-plugin这个插件来定制打包行为。
所有的一切已经都被 SpringBoot 封装好了,所以配置非常简单,提供插件坐标即可:
5.3 Mybatis逆向工程
由于使用存在局限性,并且无法实现【多表查询】的操作,在实际开发中使用较少,所以不做过多介绍。


本文作者周瑞谋(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129125.html

相关文章

  • Maven实战Quick Start

    摘要:在之前,十个项目可能有十种构建方式,但通过,所有项目的构建命令都是简单一致的。有利于促进项目团队的标准化。手工劳动往往意味着低效,意味着容易出错。这在很大程度上消除了重复。默认情况下,该文件夹下放置了本地仓库。学习实战许晓斌著 Introduction Maven是一个异常强大的构建工具,能够帮我们自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。通过Maven,我们只需要...

    Yi_Zhi_Yu 评论0 收藏0
  • Maven核心概念和日常实践

    摘要:项目根目录项目名项目版本号项目目录打包的名字二依赖管理概述通过在配置依赖坐标,会自动帮我们下载依赖的构件。关于父模块的依赖配置注意两点一般都是通过来配置所有依赖及其版本号,然后子模块,在自己的文件中声明依赖即可,不用再指定版本,以确保统一。 一、Maven 1.1 为什么写Maven 工欲善其事,必先利其器。如今Java相关开发,基本离不开Maven、Gradle、MAT、Hudson...

    894974231 评论0 收藏0
  • RPC框架实践:Google gRPC

    摘要:与文章框架实践之一文中实践的另一种通用框架能通过自动生成对应语言的接口类似,也能自动地生成和的存根,我们只需要一个命令就能快速搭建起运行环境。类似于之前对于框架的实践步骤,下面一一阐述。 showImg(https://segmentfault.com/img/remote/1460000014946557); 概述 gRPC是Google开源的通用高性能RPC框架,它支持的是使用P...

    malakashi 评论0 收藏0
  • RPC框架实践:Google gRPC

    摘要:与文章框架实践之一文中实践的另一种通用框架能通过自动生成对应语言的接口类似,也能自动地生成和的存根,我们只需要一个命令就能快速搭建起运行环境。类似于之前对于框架的实践步骤,下面一一阐述。 showImg(https://segmentfault.com/img/remote/1460000014946557); 概述 gRPC是Google开源的通用高性能RPC框架,它支持的是使用P...

    vibiu 评论0 收藏0
  • 一起学习使用Spring Cloud NetflixEureka

    摘要:笔者也是初学者,本文从创建项目工程开始,一步一步开始讲解如何创建服务端和客户端,一起学习,共同进步。下面我们使用工具创建相关项目。配置其中两个属性表明这个应用是端,而不是端。至此,端和端已经部署成功。 前言 spring cloud为互联企业构建微服务提供了一整套的技术组件,其中Eureka是Spring Cloud体系中的核心。Netfix不是一个技术概念,它原本是国外一个视频网站的...

    李义 评论0 收藏0
  • Maven就是这么简单

    摘要:软件项目的管理就会变得简单很多。比如说的驱动程序,,在是获取不到的,就需要手工上传到里是仓库组,在里没有这个概念,是特有的。 什么是Maven Maven是一个采用纯Java编写的开源项目管理工具, Maven采用了一种被称之为Project Object Model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中.. Maven是一款跨平台的项目...

    leonardofed 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<