Apache Maven简介安装Eclipse中安装内置的Maven插件本机安装Maven官网下载安装包Maven安装目录结构bin目录boot目录conf目录lib目录配置Maven的本地仓库pom.xml文件中的快照作用及设置1.0-SNAPSHOT使用用途项目管理仓库管理引入依赖、管理JAR包管理项目报告自动构建生命周期管理生成站点打包与Ant的区别Maven教程可以见 此链接。简介Apache Maven是一个面向项目特别是Java编程的开源的项目管理及自动构建工具由Apache软件基金会所提供。基于项目对象模型Project Object ModelPOM概念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.】。配置完成环境变量后需要重新打开一个新的命令提示行之前打开的命令提示行依然提示mvn 指令无效。Maven安装目录结构bin目录该目录包含了mvn运行的脚本这些脚本用来配置Java命令boot目录只包含一个文件plexus-classworlds-2.5.2.jar是一个类加载器框架相当于java类的默认加载器。conf目录包含了一个重要的配置文件settings.xml据此可以全局定制Maven的行为。lib目录该目录包含了所有Maven运行时需要的Java类库。LICENSE.txtNOTICE.txt记录了Maven包含的第三方软件。README.txt配置Maven的本地仓库maven本地默认仓库路径pom.xml文件中的快照作用及设置version1.0-SNAPSHOT/version使用快照可以确保当前项目依赖的其他项目的最近版本可以被使用哪怕依赖的项目当前还在升级迭代当中其也能够将最新的一版正式版本提供使用。自动化构建定义了这样一种场景: 在一个项目成功构建完成后其相关的依赖工程即开始构建这样可以保证其依赖项目的稳定。比如一个团队正在开发一个项目 bus-core-api 并且有其他两个项目 app-web-ui 和 app-desktop-ui 依赖于这个项目。现在 app-web-ui 和 app-desktop-ui 项目的团队要求不管 bus-core-api 项目何时变化他们的构建过程都应当可以启动。使用用途如果只是一个简单的项目例如只有一个Java文件的一个主函数也不需要依赖其他的Jar包等就不需要使用项目构建管理工具。而在大型项目开发过程中需要非常多的步骤buildtestdeploypublish等并且在开发过程中也需要依赖各种外部的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的区别