Maven构建项目

Apache Maven是一个软件项目管理工具。基于项目对象模型(POM)的概念,Maven可以从一个中心信息中管理项目的构建、报告和文档。

案例环境


  • jdk 1.8.0_152
  • apache-maven-3.5.2
  • windows10家庭版
  • IDEA2017.3.3

部署Maven


  1. 下载Maven,官网下载地址:http://maven.apache.org/download.cgi

    Maven构建项目_第1张图片

  2. 下载后直接解压即可。个人习惯创建一层上级目录,然后同级多创建一个repository目录用于本地仓库。
    apache-maven
    |_apache-maven-3.5.2(解压后目录)
    |_repository(本地仓库)
  3. 配置maven系统环境变量。这步之前请先确认已经正确安装配置了JDK。如下图所示,主要是在系统变量中增加M2_HOME变量,值是apache-maven-3.5.2程序解压目录。最后,在系统环境变量path的值中增加“%M2_HOME%\bin”。
    Maven构建项目_第2张图片
  4. 检查maven是否正常部署,cmd控制台首先路径切换到maven程序目录的bin目录,然后执行mvn -version(或者简写mvn -v),看到如下图所示代表已部署完成,如果不对请仔细检查环境变量是否配置正确,变量名对不对?path加值了吗?路径少 \ 了吧?
    Maven构建项目_第3张图片
  5. 最后,指定本地库目录,即第二步中创建的repository目录。打开apache-maven-3.5.2\conf\settings.xml文件,找到标签localRepository,如下所示配置,未来maven从中央库下载jar包就会到该路径下。
    settings.xml配置本地库

创建maven工程


PS:我是IDEA用户,本来只想体验一下,结果直接抛弃了用了近十年的eclipse。

  1. 创建maven project,选择File-new-project进入New Project界面,本案例以web工程举例,如下图所示。
    Maven构建项目_第4张图片
    如果没有发现上图的maven选项可能是缺少maven插件,如下图所示,安装maven插件。
    Maven构建项目_第5张图片

  2. Next,配置GroupId、ArtifactId属性。
    GroupId:按照jar包命名规则定义,是打包时生成文件的路径依据, 例如定义为com.company,则该项目的jar包将生成在本地路径:/com/company。
    ArtifactId:项目唯一标识,一个GroupId下面可能多个项目。

  3. Next,配置maven home目录,如下图所示。
    Maven构建项目_第6张图片
    User settings file可以不更改,只要Maven home directory更改了就会默认使用Maven home路径下的settings.xml文件,如上图所示Local repository已经更改为之前在settings.xml中配置的本地库目录。
  4. Next,默认值即可,直接Finish完成maven web project创建。如下图所示,工程目录自动生成了资源目录resource和应用目录webapp,并在webapp下默认产生了一个“Hello word!”页面。maven project最重要的是pom.xml配置文件,接下来我们主要介绍下这个文件的配置。
    Maven构建项目_第7张图片
    特别提醒:图中右下角是更新pom.xml文件后浮现的对maven project更新的操作界面,建议不要使用auto-import,每次更新pom.xml文件后都手动点击下Import Changes,原因可以体会一下它的讨厌!
  5. 打开View-Tool Windows-Maven Projects,通过这里可以更新和管理Maven project。
    如下图所示,maven projects视图中dependencies中展示了pom.xml中对应的配置。当pom.xml中配置信息显示红色字体时代表本地仓库中不存在,可以通过import changes操作从中央库更新到本地仓库;当maven projects视图中显示红色波浪底线时代表本地仓库中不存在jar包,可能是从中央库更新失败,可以修改pom.xml文件重新improt changes,如果还提示不存在那么就需要通过mvn命令安装jar包到本地仓库,这里先提一下,下一章详细介绍各种异常处理方式。
    Maven构建项目_第8张图片
  6. Maven projects视图中maven settings(齿轮图标)相当于打开File-Settings-Build,Execution,Delpoyment-Maven配置,如下图所示。如果是新建的maven project,那么在创建步骤中已经指定了本地部署的apache-maven;如果是open的已有项目,那么可以在这里去配置本地部署的apache-maven。为什么不用IDEA自带的Bundled?自己可以下载最新版本,可以使用mvn命令,方便维护。
    Maven构建项目_第9张图片

pom.xml配置


Maven构建项目_第10张图片
从上至下介绍:

  • maven.compoiler.source/target 指定工程编译jdk版本。不指定,每次pom.xml更新后工程就被设置为jdk1.5编译。
基本信息
  • groupId 项目生成jar路径。

  • artifactId 项目唯一标识。

  • packaging 打包类型,如jar/war等等。

  • version 项目版本。

  • name 项目名称。

  • url 项目地址。

  • url 项目地址。

依赖关系
  • groupId 依赖项分组标识。
  • artifactId 依赖项唯一标识。
  • version 依赖项版本号。
构建配置
  • finalName 产生构建的文件名。

小集锦


为什么pom.xml增加依赖项出现红色字体?

一般出现红色字体就是依赖项在本地仓库中不存在,可以按照grouId在本地仓库中进行确认,如果确实不存在就从中央库更新或从本地使用mvn命令安装,如果已经存在那么检查下开发工具maven插件配置是否使用的本地部署的maven或者使用正确的settings.xml配置。

为什么maven projects视图中出现红色波浪线?

一般出现这个提醒,代表本地仓库中缺少这个jar包,可以按照pom.xml配置的grouId在本地仓库中进行确认。造成这种情况的原因可能是从中央库下载失败,可以重新下载或者更换下载镜像地址(后面有介绍),还可以使用mvn命令安装本地jar包。

更换中央库下载镜像地址

在本地部署的apache-maven目录conf/settings.xml中配置标签mirror。

    <mirror>
      <id>nexusid>
      <mirrorOf>centralmirrorOf>
      <name>internal nexus repositoryname>
      <url>http://repo.maven.apache.org/maven2url>
    mirror>

为什么我从其他项目复制过来的pom.xml配置依赖项全部下载失败?

有时候我们新建一个项目或者迁移一个项目,我们直接复制pom.xml文件或者内容来生成依赖项,但是很快发现maven projects视图下依赖项目一片飘红,再去本地仓库查看发现都没有jar文件,原因是你的pom.xml中依赖项存在中央库里没有的依赖项,需要单独进行手动执行mvn命令下载,所以个人建议在pom.xml文件编写过程中,将此类依赖项单独列在一起,需要以上操作时先注释掉中央库中不存在的依赖项执行完更新后,再手动安装剩余依赖项。

查询pom.xml中配置依赖项的值

网站:http://search.maven.org/

你可能感兴趣的:(Maven构建项目)