Maven教程--快速入门

老付     2018-01-02   2660   7min  

最近一段时间准备整理下Maven相关的知识,受前面几次野心太大的教训,这次没写一篇就发一篇,不再一直憋着等到后面一起发布。本篇文章是一个使用入门的教程(至于安装和配置,已经有很多教程了,这里就不再赘述了)

什么是Maven

对于这个话题,官方有很多解释,但很多的解释都不是很好理解,既然这里是个人的博客,我就怎么容易理解怎么写。

从简单的角度去理解maven,可以简单的理解成一种项目的管理方式(如同vs中的项目文件,不过vs封装的更好一点),从一个项目的角度来考虑,项目主要包含源代码,资源文件,配置文件他其他的相关引用,如何管理这些文件呢? 我们很自然的可以想到把项目的文件和引用放到一个文本中,当编译器再次加载项目的时候就不用再重新扫描文件目录。

对于这个文本格式,我们很自然的想到用json或者xml格式去存储,这样就很容易明白为什么我们要使用Maven了。 讲到这里也不得不把官方的解释拿过来:

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information.

翻译过来就是:

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

Maven的在windows和Linux下的安装,这里就不多说了,网上有很多图文并茂的教程,这里就不多说了,也不做推荐了

Maven的快速入门

Maven是一个项目管理工具,对于工具来说只有使用的时候才能更好的理解它,这里我们先不将任何概念,先说说如何使用Maven。

使用Maven命令创建一个新的Maven项目:

mvn archetype:generate 

在选择项目Number和Maven版本的时候,由于Maven已经直接帮我门选好,我们可以直接按回车确认(1107的quickstar),后面需要我们输入GroupId,ArtifactId和其他的一些相关信息,可以使用如下:

Maven选择项目

在最终确认的时候,我们等待Maven创建完项目,项目创建完成后,我们使用tree命令来看下Maven生成的项目目录。

Maven选择项目

可以看到Maven的quickstart已经给我我们创建好了相关的目录和代码,看下对应生成的代码:

运行Maven Install 命令,把当前的程序安装到本地仓库。运行完成后,我们查看生成后的项目目录结构如下:

Maven选择项目

Maven常用命令

对于maven常用的命令,我们需要对maven的其他只是进行了解。

  • Maven的生命周期

    maven的强大在于他完整的生命周期,这里就不全部列出来所有的周期,挑几个重要的列出来:

    名称 含义
    1. process-resources 复制并处理资源文件,至目标目录,准备打包。
    2. compile 编译项目的源代码。
    3. process-classes 复制并处理资源文件,至目标测试目录。
    4. process-test-resources 复制并处理资源文件,至目标测试目录
    5. test-compile 编译测试源代码
    6. test 框架运行测试
    7. package 打包
    8. install 安装本地仓库
    9. deploy 发布到远程仓库
  • 常用命令的使用

    命令 含义
    mvn archetype:generate 创建maven项目
    mvn compile 编译源代码
    mvn test-compile 编译测试代码
    mvn test 运行应用程序中的单元测试
    mvn site 生成项目相关的网站
    mvn clean 清除目标目录生成结果
    mvn package 生成jar包
    mvn install 安装本地仓库
(本文完)

作者:付威

如果觉得对您有帮助,可以下方的订阅,或者选择右侧捐赠作者,如果有问题,请在捐赠后咨询,谢谢合作

如有任何知识产权、版权问题或理论错误,还请指正。

自由转载-非商用-非衍生-保持署名,请遵循:创意共享3.0许可证

交流请加群113249828: 点击加群   或发我邮件 laofu_online@163.com