maven

本文详细介绍Maven作为项目构建工具的优势与应用,包括Maven的下载安装、本地仓库配置、依赖管理、常用命令及与Eclipse的集成。通过实例演示Maven工程的创建、运行流程,以及如何解决常见错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【maven简单介绍】

传统开发,jar包太多,线性增长,文件越来越大

有一个地方单独放jar包,不在workspace,不同项目可以分别引用

项目构建工具, 类似于eclipse

大型web项目用eclipse比较繁琐

注意:将本地已有的maven工程导入工作空间,导入好发现工作空间内不存在项目,是因为导入maven工程时,不支持复制。

解决方案:先将maven工程复制到工作空间,然后再导入eclipse。

【使用eclipse开发webapp的步骤】

 1. 新建一个动态web项目

 2. 编写java代码

 3. 编译成了class文件

 4. 按照目录结构放到tomcat目录下的webapp内

 5. 启动tomcat

 

【使用maven开发webapp步骤】

 1. 新建一个maven项目

 2. 编写java代码

 3. 一个命令运行 mvn tomcat7:run

 

 

 

 

【maven的下载安装】

1. maven是apache的一个开源项目

官网下载

2. apache-maven-3.3.9-bin.zip, 解压到某个目录下

 不要用中文,不要有空格

 

3. 配置环境变量 PATH(可执行文件的全局/选址?路径)

bin中的文件都是cmd的,需要配置环境变量,才能在计算机各个位置访问到

4. 测试maven是否生效

cmd输入命令 mvn –v

【maven的jar包管理方式】

Maven只有8MB,根本不可能包含所有的jar包,所以他只是个项目构建工具,引导你编译时找到需要的jar包

所以需要在本地维护这么多的jar包

如果本地仓库没配置,就要去中央仓库下载,受到网速限制

 

【本地仓库的配置】

建议解压到D://maven

命名方式,公司,团队倒写

现在要想办法告诉maven,仓库在你隔壁

 

Maven会使用这个路径作为本地仓库,由于是注释,其实这整个xml文件都是注释,几乎是空的,复制出来,加一段,并配上长裤的路径就行

本地仓库(老师给的),至少里面拥有目前开发所依赖的所有jar包,没有的话会去网上拿

 

【第一个maven工程的运行】

maven的核心配置

手写一个web项目(其实是老师给的)

分别是:(1)id用来分组的id(2)项目名(3)版本号(4)打包方式(5)名字(6)描述

重点是dependencies依赖

这项目依赖于junit,jsp 2.0,servlet 2.5

插件:(1)编译方式(2)tomcat

类似于lib,但不是真的lib,而是通过pom.xml去找到你仓库里的lib

代码写在src下的main和test,分别是开发目录和测试目录

开发目录 分别放java代码,配置文件,web资源

本质还是servlet,配在web.xml里面

在要运行的项目下打开命令行

复制路径跑起来,加上/test

Ctrl+c断掉服务器

 

【maven工程的目录结构】

project/ 项目根目录

|--project/src 放源代码

|--|-- project/src/main 放项目的源代码

|--|--|--project/src/main/java 放项目的java代码

|--|--|--project/src/main/resource 放项目的配置文件(如applicationContext.xml)

|--|--|--project/src/main/webapp 放项目的web资源(包括WEB-INF/web.xml)

 

|--|--project/src/test 放项目测试用的源代码

|--|--|--project/src/test/java 放测试用的java代码

|--|--|--project/src/test/resource 放测试用的配置文件(如果没有, 就自动用开发目录下的配置文件)

 

|--project/target 放编译后产生的文件(可以随便删除,大不了再编译)

|--project/pom.xml maven项目核心配置文件(管理依赖和插件)

 

 

 

 

 

 

 

 

【maven的常用命令】

1. compile - 编译

(mvn –compile作用在项目src同级路径下,删除target文件夹后,使用命令可再次编译

 只编译main目录 , 不会编译test目录

 

 2. test - 测试

用于类比编译

 先编译, 再执行test中的代码

 也会编译main目录

 

 3. clean - 清除

 清除target目录(不用手动删除

 

 4. package - 打包(吃不完打包,项目没写完打包

 把项目打成jar包或者war包

 可以直接部署到tomcat中

 * jar包 war包 其实都是rar, 只不过放的东西不一样

Jar包放字节码     war包里放web项目

Jar就是java rar     war就是web rar  可以直接改后缀名打开看

导包,导的是文件夹,也可以直接导war包

 

 5. install - 安装

 把项目安装到本地仓库

repository会多个

 类似于京东商城这样的大型互联网项目, 分成不同模块的

 用户模块 商品模块 订单模块 ...

一个模块变成一个项目,但也是相互关联的,分别把自己打成jar包,jar包只有功能,没有代码,我只需要功能

【用eclipse开发maven项目】

1. 安装m2e插件 (MARS版本以上的eclipse已经集成好了)

2. 配置一下(引到找到maven版本)

maven/Installations -> add.. 选择自己的maven安装路径

选完勾上

maven/User Settings -> settings路径

不能直接修改本地仓库,必须修改maven里conf里的settringxml间接指向

这两步做一次就够了

3. 新建一个maven project

勾上 Create a simple project(跳过骨架选择)

默认路径要修改

Next

 4. 填写基本信息

Group Id 组id

1) 公司域名倒写 com.bwf

2) 主项目名 com.bwf.crm

以后的子项目名就可以是

com.bwf.crm.dao

com.bwf.crm.service

com.bwf.crm.web

Artifact Id 项目id

项目名 crm test

packaging 打包方式

给别人使用就jar,要发布就war

 5. 解决报错

1. 缺少web.xml

右键项目名称,用javaEE tools 自动生成一个

2. 把java BuildPath 的jdk版本改成workspace默认版本

这里建议使用

 

 

 

 

 6. 创建一个一个Servlet

然后报错了

要用tomcat,maven没有tomcat,所有依赖由pom管理

 

 7. 在pom.xml中配置依赖关系

Servlet

jsp

直接添加找的话找不到

 

  1. 在视图中添加maven仓库

  1. 建立索引

建立索引后

  1. 打开pom.xml, 选择dependencies Add...

  <dependencies>

   <dependency>

   <groupId>javax.servlet</groupId>

   <artifactId>servlet-api</artifactId>

   <version>2.5</version>

   </dependency>

   <dependency>

   <groupId>javax.servlet</groupId>

   <artifactId>jsp-api</artifactId>

   <version>2.0</version>

   </dependency>

  </dependencies>

然后就不报错啦

 

 8. 运行项目

右键 run as -> maven build...

输入tomcat:run

 

 9. 出现问题

问题1:不是JDK

 把JRE换成JDK

问题2:is not a Servlet

 jar包冲突

 把Servlet和jsp的<dependency>的scope属性改成provided

然后就ok了

原因:pom里两个依赖jsp和servlet一起打包到项目里去,但是项目tomcat自身就有这两个jar包,导致jar包冲突

 

 

【依赖范围 Scope】

Compile 编译时需要(默认 spring的jar包)(全要

编译时(compile) 测试时需要 运行时需要 打包时需要

 

provided - servlet-api 和 jsp-api

编译时(compile) 测试也需要, 运行时不需要, 打包时不需要

 

runtime 运行时需要 - 数据库驱动包

编译时不需要, 测试时需要, 运行时需要, 打包时需要

 

test (junit.jar)

编译时不需要, 测试时需要, 运行时不需要, 打包不需要

 

【插件】

这样才有用

结果看红字,一个是tomcat6.0,一个是7.0

【修改tomcat端口和访问路径】

 

【maven整合springmvc】

配springmvc

一次只能导一个

compile

把spring依赖的jar包全进来了

从别的项目偷一个配置文件

放在resource里

别的都不要,只要能扫这个包加注解搞定了

还没完全配完:web.xml里面差一个核心控制器

就这两个货

写java代码

补上插件,不然只能以6跑

又漏了

Action后缀

终于成功啦!!

注意:maven项目的结构建议用package explorer窗口显示比较好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值