1. 简介
Maven是一个跨平台的项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。
2. Maven功能概括
a. 遵循最佳实践的简单项目设置 -- 可以在数秒钟内得到一个新的项目或模块
b. 在所有项目中一致的使用意味着新进入项目的开发人员能够更快上手
c. 优秀的依赖管理,包括自动更新,依赖闭包(也称为传递依赖)
d. 能够很容易地同时与多个项目一起工作
e. 一个庞大且不断增长的开箱即用的库和元数据的存储库,以及最大的开源项目的最新版本的实时可用性维护。
f. 可扩展并且能够方便地使用Java和脚本语言编写插件
g. 使用很少或根本不用额外的配置就能即时访问新的功能
h. Maven之外的依赖管理和部署的Ant任务。
i. 基于模型的构建:Maven可以构建任意数量的项目到预定义的输出类型,如JAR,WAR,或基于元数据发布项目,在大多数情况下不需要任何的脚本。
j. 相干网站项目信息:通过在构建过程中使用相同的元数据,Maven能够生成一个网站或PDF包括任何你想添加的文件,并增加了项目开发进度的标准报告。
k. 发布管理和分销出版:无需太多额外配置,Maven将集成源代码控制系统如CVS并根据特定标签管理项目的发布。它也可以发布到其他项目使用的发布位置。Maven能够发布独立的输出,如JAR,包括其他依赖和文档的归档,或源代码分发。
l. 依赖管理:Maven鼓励使用中央存储库的JAR文件和其他的依赖。Maven带有一种机制能够让你项目的客户从中央JAR仓库下载构建项目所需的JAR文件,这很像Perl的CPAN库。这使得Maven用户在多个项目中重用的JAR文件,并鼓励项目之间的沟通以确保向后兼容性问题的处理。
3. 安装配置Maven
(1) Windows安装
a. 确认已经正确安装JDK。
b. 下载最新版本的Maven,即apache-maven-3.0.5-bin.zip,下载地址是:http://maven.apache.org/download.html。
c. 解压,我把解压后的目录放在D:\Program Files下。
d. 设置环境变量。新建一个系统变量M3_HOME,值为:D:\Program Files\apache-maven-3.0.5。在系统变量里找到Path,点击编辑,添加变量值"%M3_HOME%\bin".注意:多个值之间需要有分号隔开。
e. 注意Path环境变量。当我们在cmd中输入命令时,Windows首先会在当前目录中寻找可执行文件或脚本,如果没有找到,Windows会接着遍历环境变量Path中定义的路径。安装好之后,在使用mvn -v命令来检查配置是否正确。如果安装无误,将会显示Maven的版本信息。
(2) Linux安装
a.下载最新版本的Maven,即apache-maven-3.0.5-bin.tar.gz,下载地址是:http://maven.apache.org/download.html。
b. 解压到本地目录: tar -zxvfapache-maven-3.0.5-bin.tar.gz。
c. 解压后Maven安装目录为apache-maven-3.0.5。虽然直接使用该目录配置环境变量之后就能直接使用Maven了,但推荐在安装目录旁平行地创建一个符号链接,以方便升级(直接把链接指向新版本):ln -s apache-maven-3.0.4 apache-maven
d. 设置环境变量:
export M3_HOME=/home/jackie/Software/apache-maven
export PATH=$PATH:$M3_HOME/bin
一般来说,需要将以上两行命令添加到系统的登录shell脚本中去,这样每次启动一个终端,这些配置就能自动执行。
(3) 检测安装是否成功
cmd窗口执行命令:mvn –v
4. Maven安装目录
(1)bin:该目录包含了mvn运行的脚本,这些脚本用来配置Java命令,准备好classpath和相关的Java系统属性,然后执行Java命令。其中mvn是基于UNIX平台的shell脚本,mvn.bat是基于Windows平台的批处理文件。同理mvnDebug和mvnDebug.bat分别是UNIX平台和Windows平台的脚本。mvnDebug比mvn多了一条MAVEN_DEBUG_OPTS配置,其作用就是在运行Maven时开启debug,以便调试Maven本身。该目录还包含m2.conf文件,这是classworlds的配置文件。
(2)boot:该目录只包含一个文件,即plexus-classworlds-2.4.jar。plexus-classworlds是一个类加载器框架,相对于默认的java类加载器,它提供了更丰富的语法以方便配置,Maven使用该框架架在自己的类库。
(3)conf:该目录只包含一个settings.xml。直接修改该文件,就能在机器上全局的定制Maven行为。推荐做法是复制该文件至用户目录下的.m2目录下,然后修改该文件,在用户范围定制Maven行为。
(4)lib:该目录包含了所有Maven运行时需要的Java类库,Maven本身是分模块开发的。
(5)LICENSE.txt:该文件记录了Maven使用的软件许可证Apache License Version 2.0。
(6)NOTICE.txt:记录Maven包含的第三方软件。
(7)README.txt:包含Maven的简介,包括安装需求及如何安装的简要指令等。
5. Maven安装最佳实践
(1)设置MAVEN_OPTS环境变量
通常需要设置MAVEN_OPTS的值,因为Java默认的最大可用内存往往不能够满足Maven运行的需要,比如项目较大时,使用Maven生成站点需占用大量内存,如果无此配置,很容易得到java.lang.OutofMemeoryError。所以推荐一开始就配置该变量。
(2)配置用户范围settings.xml
为避免影响系统其他用户,推荐使用用户范围的settings.xml,而且便于Maven升级。
(3)不要使用IDE内置的Maven
Eclipse有一个内置的Maven,不一定稳定,而且我们经常会使用命令行的Maven,所以推荐在Eclipse中配置Maven插件时使用与命令行一致的Maven。
6. 参考资料
-
maven官网:http://maven.apache.org/
-
maven权威指南中文版:http://www.sonatype.com/books/maven-book/reference_zh/public-book.html
-
maven仓库搜索:http://www.mvnrepository.com/
- The Maven 2 POM demystified - article at JavaWorld
- Maven for PHP
相关推荐
maven安装与配置 《快速上手Maven:2-3年技术人员的实战指南》是一门专为具有2-3年工作经验的技术专业人士设计的实用课程。本课程旨在帮助学员深入理解并掌握Maven这一强大的项目管理和构建工具,从而提高软件开发的...
maven安装与配置 本课程旨在为具有2-3年技术经验的Java开发者提供一个全面而深入的Maven学习体验。《现代Java开发者的Maven实战手册:构建·管理·优化》不仅涵盖了Maven的基础知识和核心概念,还通过一系列精心设计...
在用maven项目的时候,很多时候不想去再把项目部署到Tomcat上,然后发布并启动,这个时候我们就可以运用Tomcat热部署来配置,只需要再maven的配置文件加上一小段代码即可,非常方便! 启动的时候直接:右键项目--...
这个一个maven web项目的pom文件。主要包含运用spring mvc, spring, mybatis 框架时需要导入的依赖列表。旨在帮助一些愿在java web上进行开发的新手。大部分依赖都有其注释与说明。
本次资源包含了Maven的压缩包,直接解压即可。初学的小伙伴还附带有图文教程,按文档操作就可完成一个简单的运用maven编译的小项目。
本项目是基于maven构建的ssm框架的项目,是一个demo,实现了视频的上传和网页的在线预览。里面有关配置请自行调整。
一、项目简述 功能包括(管理员和学生角色): 管理员和学生登录,图书管理,图书添加删除修改,图书 借阅,图书归还,图书查看,学生管理,借还管理,读者 管理,密码管理,信息修改等等功能。 二、项目运行 环境...
了解Maven的环境配置以及如何在项目中进行运用管理 目标二. 了解java框架技术,熟悉SSH框架搭建的全过程 目标三. 可以让学员迅速掌握JEasyUI的API及使用技巧 目标四. 可以让学员熟练使用JEasyUI快速构通富客户端...
一、项目简述 功能介绍:员工管理,用户管理,部门管理,文档管理, 职位管理等等。 二、项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: ...
jemter配置文档
需要在本项目使用Maven仓库的可以来获取压缩包。在使用IDEA一键生成SpringBoot流程这篇文章运用的这个Maven,想看的可以来到...这里面只介绍了IDEA配置环境时候所需要配置的Maven,并没有配置Maven里面设置。
security3.2最新版本配置,资源里面有4个小项目,都是利用maven搭建的,先在mysql中新建一个security空数据库,不要建表,然后只要在myeclipse导入,运行maven install,在连网状态下就会自动下载jar包了,无需再去...
一配置PHP环境 1、了解什么是PHP PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写) PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在...
工具与依赖:Maven或Gradle配置文件,列出了项目所需的所有依赖库及其版本信息。此资源面向的主要用户群体是软件开发者、IT专业的学生或对体育馆管理系统感兴趣的技术爱好者。通过学习和参考该项目,可以获得实际的...
环境配置 jdk1.8 Maven 3.3.9 Mysql 5.6 SpringBoot 1.4.3 Shiro 1.2.5 Gson 2.3.1 Mybatis 3.2.7 Webmagic 0.6.1 Echarts类库 freemarker web端框架 Springboot/Mybatis/Shiro/maven/Echarts shiro 权限及安全...
2. 运用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入胜利后请执行maven clean;maven install命令,然后运转; 3. 将项目中src/com/hr/dao/Basedao.java...
基于maven配置的web工程,运用spring注解方式整合hibernate和struts,通过配置方式进行jdbc配置
项目完成了对阿里云、腾讯云、微信生态的快速接入与代码示例,并成功运用到了商业中,方便大家学习对OSS/COS/短信服务/快递服务/公众号/小程序/微信开放平台/微信支付的技术点与应用场景的学习; 小程序与公众号第三...
项目概述:基于Java实现的物品协同过滤证书推荐系统 本项目采用Java语言开发,涉及文件共92个,具体...该系统运用协同过滤技术,基于用户历史数据,为用户推荐相应的证书,以提高推荐的准确性,满足用户个性化需求。
系统采用了Spring, SpringMVC, MyBatis三种Java主流框架,结合HTML5前端页面,运用Maven管理工具,实现了学生成绩管理平台系统的设计工作。系统实现了对学生成绩的增删改查功能,使用MySQL作为数据库。项目结构清晰...