【Maven】3—其他核心概念

⭐⭐⭐⭐⭐⭐
Github主页https://github.com/A-BigTree
笔记链接https://github.com/A-BigTree/Code_Learning
⭐⭐⭐⭐⭐⭐

如果可以,麻烦各位看官顺手点个star~

如果文章对你有所帮助,可以点赞收藏⭐支持一下博主~

文章目录

  • 4 其他核心概念
    • 4.1 生命周期
      • 4.1.1 作用
      • 4.1.2 三个生命周期
      • 4.1.3 特点
    • 4.2 插件和目标
      • 4.2.1 插件
      • 4.2.2 目标
    • 4.3 仓库

4 其他核心概念

4.1 生命周期

4.1.1 作用

为了让构建过程自动化完成,Maven 设定了三个生命周期,生命周期中的每一个环节对应构建过程中的一个操作。

4.1.2 三个生命周期

生命周期名称 作用 各个环节
Clean 清理操作相关 pre-clean
clean
post-clean
Site 生成站点相关 pre-site
site
post-site
deploy-site
Default 主要构建过程 validate
generate-sources
process-sources
generate-resources
process-resources 复制并处理资源文件,至目标目录,准备打包。
compile 编译项目 main 目录下的源代码。
process-classes
generate-test-sources
process-test-sources
generate-test-resources
process-test-resources 复制并处理资源文件,至目标测试目录。
test-compile 编译测试源代码。
process-test-classes
test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。
prepare-package
package 接受编译好的代码,打包成可发布的格式,如JAR。
pre-integration-test
integration-test
post-integration-test
verify
install将包安装至本地仓库,以让其它项目依赖。
deploy将最终的包复制到远程的仓库,以让其它开发人员共享;或者部署到服务器上运行(需借助插件,例如:cargo)。

4.1.3 特点

  • 三个生命周期彼此是独立的;
  • 在任何一个生命周期内部,执行任何一个具体环节的操作,都是从本周期最初的位置开始执行,直到指定的地方;

Maven之所以这么设计其实就是为了提高构建过程的自动化程度:让使用者只关心最终要干的即可,过程中的各个环节是自动执行的。

4.2 插件和目标

4.2.1 插件

Maven的核心程序仅仅负责宏观调度,不做具体工作。具体工作都是由Maven插件完成的。例如:编译就是由maven-compiler-plugin-3.1.jar插件来执行的。

4.2.2 目标

一个插件可以对应多个目标,而每一个目标都和生命周期中的某一个环节对应;

Default生命周期中有compiletest-compile两个和编译相关的环节,这两个环节对应compiletest-compile两个目标,而这两个目标都是由maven-compiler-plugin-3.1.jar插件来执行的;

4.3 仓库

  • 本地仓库:在当前电脑上,为电脑上所有 Maven 工程服务
  • 远程仓库:需要联网
    • 局域网:我们自己搭建的 Maven 私服,例如使用 Nexus 技术。
    • Internet
      • 中央仓库
      • 镜像仓库:内容和中央仓库保持一致,但是能够分担中央仓库的负载,同时让用户能够就近访问提高下载速度,例如:Nexus aliyun

建议:不要中央仓库和阿里云镜像混用,否则 jar 包来源不纯,彼此冲突。

你可能感兴趣的:(微服务,#Maven,maven,java)