• Apache Maven


    简介

    Apache Maven是一个面向项目(特别是Java编程)的开源项目管理自动构建工具,由Apache软件基金会所提供。基于项目对象模型(Project Object Model,POM)概念,Maven利用一个中央信息片断,就能管理一个项目的构建、报告和文档等步骤。补入本文的内容

    Maven这个单词来自于意第绪语(犹太语),意为知识的积累。

    • 项目管理:依赖管理-项目中需要使用的其他资源,常见的是jar包(管理项目中各种jar包)。在没有Maven前,我们需要去网络上下载需要的正确版本的jar包,并且手工处理jar包之间的依赖。
    • 自动构建:帮助开发人员做项目的编译、打包、安装、部署等工作。

    Maven包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System)和用来运行【定义在生命周期阶段(phase)中插件(plugin)目标(goal)】的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

    安装

    Eclipse中安装内置的Maven插件

    使用eclipse中内置的maven插件,通过Windows——Preferences——Maven进入maven插件的各项设置页面,补入此篇博客,目前自己用的是文中的第三种方法
    安装后,使用mvn -v进行测试,失败。查询原因时,看到此篇博客,按其所说,测试Java -version提示无响应,确认jdk出现异常后重装JDK。

    安装后,测试mvn -v成功,如下图所示,安装完毕。在这里插入图片描述

    Maven官网下载,直接安装在电脑上

    补入本博客中的【1.-3.】

    Maven安装目录结构

    bin目录

    该目录包含了mvn运行的脚本,这些脚本用来配置Java命令;

    boot目录

    只包含一个文件:plexus-classworlds-2.5.2.jar,是一个类加载器框架,相当于java类的默认加载器。

    conf目录

    包含了一个重要的配置文件settings.xml,据此可以全局定制Maven的行为。

    lib目录

    该目录包含了所有Maven运行时需要的Java类库。
    LICENSE.txt
    NOTICE.txt
    记录了Maven包含的第三方软件。
    README.txt

    配置Maven的本地仓库

    maven本地默认仓库路径

    在这里插入图片描述

    pom.xml文件中的快照作用及设置1.0-SNAPSHOT

    使用快照可以确保当前项目依赖的其他项目的最近版本可以被使用,哪怕依赖的项目当前还在升级迭代当中,其也能够将最新的一版正式版本提供使用。

    自动化构建定义了这样一种场景: 在一个项目成功构建完成后,其相关的依赖工程即开始构建,这样可以保证其依赖项目的稳定。
    比如一个团队正在开发一个项目 bus-core-api, 并且有其他两个项目 app-web-ui 和 app-desktop-ui 依赖于这个项目。现在 app-web-ui 和 app-desktop-ui 项目的团队要求不管 bus-core-api 项目何时变化,他们的构建过程都应当可以启动。

    使用用途

    如果只是一个简单的项目(例如只有一个Java文件的一个主函数,也不需要依赖其他的Jar包等),就不需要使用项目构建管理工具。而在大型项目开发过程中需要非常多的步骤:build,test,deploy,publish等,并且在开发过程中也需要依赖各种外部的Jar包来提升开发效率,这就用到了对项目构建的管理工具——Maven。

    项目管理

    仓库管理

    repo(仓库的管理):开发项目过程中,我们需要引入其他的Jar包,在maven中可以指定获取Jar包的仓库。

    引入依赖、管理JAR包

    dependency(依赖管理):开发项目过程中,我们需要引入第三方的jar包(不同的版本,以及多个Jar之间的依赖),在maven中都可以解决。

    管理项目报告

    自动构建

    比如执行run as Maven install操作时,会将会把父工程与所有子工程都打包安装到本地仓库。

    生命周期管理

    lifecycle(生命周期管理):在maven的构建中被划分为多个阶段(生命周期),构建的过程也是按照生命周期进行执行。
    在这里插入图片描述

    生成站点

    打包

    Maven可以将项目打包成开发人员指定的类型,用于部署到web容器,Maven还可以将项目打包到本地仓库中,方便项目的相互依赖。

    pom.xml中指定要打包成的类型,如果未指定,则默认为.jar。

    打包过程为:在项目根目录下,执行命令mvn clean package,然后可以在【当前开发的项目工程根目录下的】target文件夹下找到刚刚打包生成的jar包。

    与Ant的区别

  • 相关阅读:
    JAVA毕业设计vue学习视频课程网站计算机源码+lw文档+系统+调试部署+数据库
    基于智能优化算法PSO/GWO/AFO+柔性车间生产调度(Matlab代码实现)
    【linux命令讲解大全】045.网络数据分析利器:深度解读 tcpdump 抓包工具的使用方法
    春雷在线考试系统
    使用java 实现mqtt两种方式
    Flink SQL: RESET Statements
    【leetcode】【剑指offer Ⅱ】064. 神奇的字典
    OWT(Open WebRTC Toolkit) Server信令分析 (上)
    JS-Ajax
    Web微服务
  • 原文地址:https://blog.csdn.net/u010804417/article/details/120770339