• Maven入门-2.Maven一些核心概念介绍


    1、Maven仓库

    当第一次使用Maven的时候,Maven会从远程仓库http://repo1.maven.org/maven2 下载所需要的jar包到你本地仓库
    等下次再获取同样的jar包时,Maven会先从你本地仓库获取,如果本地仓库获取不到,则再从远程下载。

    2、Maven坐标

    Maven通过groupId, artifactId, version和packaging这四个元素定义了项目的坐标,一个坐标就是在Maven空间里的一个点,是不能重复的。它们用来唯一标识一个项目,一个依赖,一个插件
    groupId:团体、公司、组织、小组这些名词的逆向命名。例:com.baidu.user
    artifactId:定义了一个maven项目的一个模块,一般约定为项目名词作为前缀-模块。例:user-core 其中user为项目名,core为模块名
    version:定义了当前这个项目的版本。
    Maven的版本号约定:<主版本>.<次版本>.<增量版本>-<里程碑版本> 例如:1.3.4-beta-2

    1. 主版本:表示项目的重大变更,例如Maven1到Maven2,Struts1和Struts2
    2. 次版本:表示较大范围的功能增加和bug修复
    3. 增量版本:一般表示重大bug修复
    4. 里程碑版本:表示一个版本的里程碑
      但是注意:不是这个四个都必须有的,一般情况多会有主版本和次版本,增量和里程碑版本就不一定了。

    packaging:项目打包类型(默认是jar),如果是纯粹管理其他子项目的父项目,这个类型需要为pom

    3、Maven插件和目标

    假如我们现在想通过如下命令来生成一个简单的maven项目

    1. mvn archetype:create -DgroupId=com.baidu.user -DartifactId=user-core -DpackageName=com.baidu.user

    之前我们说过,Maven自身其实是没做什么实际的事情,一切都是由插件完成的
    像上面的mvn archetype:create 表示运行了archetype插件的create目标。一个插件是一个或多个目标的集合。如下图

    一个目标才是一个明确的任务,才是maven执行的命令
    其中,目标中定义了一些参数。例如上面命令中的-DgroupId表示参数名称为groupId,值为com.baidu.user
    就Maven的本身来说,它并不知道怎么生成一个jar文件,它只是把这些操作代理给了插件完成。
    插件目标速记符号:pluginId:goalId

    4、Maven生命周期

    Maven的生命周期中包含了一系列插件的目标操作,例如,我们运行一个mvn package命令,这个命令中并没有指定一个插件的目标,就只有一个package命令。
    而这个package命令就是生命周期中的一个阶段,每个生命周期中都包含了一些阶段,这些阶段是有依赖关系的。阶段中运行了一系列插件中的目标操作。
    在Maven中有三套独立的生命周期:

    4.1 clean:清理项目

    clean生命周期的目的就是清理项目,包含3个阶段

    1. pre-clean 执行一些清理前需要完成的工作。
    2. clean 清理上一次生成的字节码文件
    3. post-clean 执行一些清理后需要完成的工作

    4.2 default:构建项目(重要)

    default生命周期定义了真正构建时所需要执行的所有步骤,是最核心的部分。包含阶段如下

    1. validate
    2. initialize
    3. generate-sources
    4. process-sources 主力项目/src/main/resources目录下的资源文件
    5. generate-resources
    6. process-resources
    7. compile 编译项目src/main/java目录下的源代码
    8. process-classes
    9. generate-test-sources
    10. process-test-sources 处理项目src/test/resources目录下的测试资源文件
    11. generate-test-resources
    12. process-test-resources
    13. test-compile 编译项目src/test/java目录下的测试代码
    14. process-test-classes
    15. test 使用单元测试框架运行测试
    16. prepare-package
    17. package 接受编译好的代码,打包成可发布的格式jarwar
    18. pre-integration-test
    19. integration-test
    20. post-integration-test
    21. verify
    22. install 将包安装到Maven本地仓库,供本地其他Maven项目使用
    23. deploy 将最终的包复制到远程仓库中,供其他开发人员和Maven项目使用

    4.3 site:建立项目站点

    site生命周期是建立项目的发布站点,一般开发人员用不到。也就是生成一些站点信息

    1. pre-site 执行生成站点之前需要完成的工作
    2. site 生成项目站点文档
    3. post-site 执行生成站点之后需要完成的工作
    4. site-deploy 将生成的项目站点发布到服务器上

    直接使用mvn site命令即可生成一个站点报告。
    从命令行执行生命周期的某些阶段,例如:
    mvn clean :调用clean生命周期的clean阶段,因为有依赖关系,所以实际上是先执行了pre-clean然后才执行的clean阶段
    mvn test :调用default生命周期的test阶段,执行test阶段之前就必须执行test之前的那些阶段validate、initialize等等

  • 相关阅读:
    工作的价值
    面对伤害该不该回击
    建议
    利用私有的API获得手机上所安装的所有应用信息(包括版本,名称,bundleID,类型)
    你必须知道的HTTP错误
    静态库制作
    MDM证书申请的流程
    IOS客户端实现RSA加密
    获得appstore里面app的最新的版本信息,进行版本更新
    C语言实现简单php自定义扩展
  • 原文地址:https://www.cnblogs.com/meet/p/5094361.html
Copyright © 2020-2023  润新知