本文共 4990 字,大约阅读时间需要 16 分钟。
Apache Maven是个项目管理和自动构建工具,基于项目对象模型(POM)的概念。
简单理解: 管理项目jar包 作用: 完成项目的相关操作,如:编译,构建,单元测试,安装,网站生成和基于Maven部署项目。 主要问题 1、jar包依赖的问题 2、jar包冲突的问题(版本冲突) 例如依赖: a.jar–>b.jar mvc.jar–>反射相关.jar 例如版本 mysql-5.44.jar Jar包来来源 1、百度—》 xxx.jar 在百度上进行下载将xxx.jar导入工程中 2、私服 工程中的某一个xml文件中写入一个字符串,达到jar下载的作用 3、国外的网站 阿里私服没有的就是直接到国外的网站上进行搜索下载的。 为什么需要私服 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地, 而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话, 还会影响项目的进程。很多情况下项目的开发都是在内网进行的,连接不到maven仓库怎么办呢? 开发的公共构件怎么让其它项目使用?这个时候我们不得不为自己的团队搭建属于自己的maven私服, 这样既节省了网络带宽也会加速项目搭建的进程,当然前提条件就是你的私服中拥有项目所需的所有构件1 下载maven安装包,解压即可使用
网址:http://maven.apache.org/download.cgi 我使用的版本: 2 配置maven环境变量 2.1 MAVEN_HOME 2.2 M2_HOME 2.3 修改path添加maven相关路径 配置方式跟jdk有些类似,环境变量MAVEN_HOME和M2_HOME的值为maven的根目录、 然后在PATH环境变量里加入“%MAVEN_HOME%\bin;%M2_HOME%\bin;”即可 3 验证 doc窗口执行命令“mvn –version” 4 修改“MAVEN_HOME\config”下的setting.xml文件,配置本地仓库。 注意是:“E:/”而非“E:\” 例如:E:/mvn-repository 注1:标签在setting.xml文件的53行 注2:仓库的作用就是用来存放jar包的 注3:仓库的分类 中央仓库 公司仓库(也叫私人仓库或私服) 本地仓库中央仓库([中央仓库](http://search.maven.org)/,但一般使用另外一个网站:(http://www.mvnrepository.com)/) 公司仓库 本地仓库 公司里面还会有一个大仓库(本地)全公司使用 本地仓库程序员自己使用,私服全公司使用,中央仓库所有人用 注4:jar的查找顺序:本地仓库->私服->中央仓库 注5:换源“阿里云”5 maven插件安装与配置 注1:eclipse4.0以上已经安装好了,无需额外配置 注2:设置maven安装路径 Installations 注3:指定setting.xml文件 User Settings(本地仓库下载地址) Maven用户可以选择配置$M2_HOME/conf/settings.xml或者~/.m2/settings.xml,前者是全局范围的, 整台机器上的所有用户都会直接受到该配置的影响,而后者是用户范围的,只有当前用户才会受到该配置的影响。 推荐使用用户范围的setting.xml,主要是为了避免无意识地影响到系统中的其他用户, 而且为了以后maven升级的方便,直接把配置文件从仓库拷过去就可以了。 测试
Maven project
maven-archetype-quickstartgroup id:组织id,一般就是公司域名反写
artifact id:项目名字 version:版本 package:java包名src/main(源代码)
src/test(测试代码) target 编译后、打包后的文件 集成Maven 1 2 3 4 编写过程中出现的问题:配置的存储库出现问题。 原因 修正: 注意 删除maven文件否则会重复报以上错误(哪怕已经没有错误) 注意(初期问题) 1、注意要选择internal 2、加载时间过长,不要强制关闭 3、默认创建出来的maven项目是不可用的(重点) 图示 如何解决默认创建出来的maven项目不可用 解决方案:一共五个步骤 1修改pom.xml 原pom.xml代码4.0.0 com.zxp cs war 0.0.1-SNAPSHOT cs Maven Webapp http://maven.apache.org junit junit 3.8.1 test cs
修改后的pom.xml(需要的jar包依赖)
4.0.0 com.zxp cs war 0.0.1-SNAPSHOT cs Maven Webapp http://maven.apache.org junit junit 4.12 test mysql mysql-connector-java 5.1.44 javax.servlet javax.servlet-api 4.0.1 provided cs
注意markers没有看似解决实际没有
2配置maven-compiler-plugin插件(web3.1设置)4.0.0 com.zxp cs war 0.0.1-SNAPSHOT cs Maven Webapp http://maven.apache.org junit junit 4.12 test mysql mysql-connector-java 5.1.44 javax.servlet javax.servlet-api 4.0.1 provided cs org.apache.maven.plugins maven-compiler-plugin 3.7.0
3修改web.xml
Archetype Created Web Application
4修改默认版本为配置版本
4.1 4.2 4.2.1 4.2.2注意取消勾然后选中修改的版本点击应用apply然后再点勾 4.2.3 4.3点击ok—》apply—》applyandclose 5 5.1 5.2点击ok 注意文件夹项目默认不全 如何解决 1.1 1.2 测试代码package com.zxp.cs;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet("/mavenTest")public class MavenServlet extends HttpServlet{ private static final long serialVersionUID = 2961710045358566480L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("maven 环境搭建完毕!!!"); }}
maven是maven管理的一个仓库
用来存放jar包 流通过程图解:理解dependency的组成
junit 《—公司名junit 《—项目名4.12 《—代表哪个版本
转载地址:http://tyrzi.baihongyu.com/