Maven详细入门配置介绍

Maven详细入门配置介绍

Maven的介绍

什么是Maven

  • maven翻译为“专家”,“内行”。Maven是Apache下的一个纯java开发的开源项目,它是一个项目管理工具,使用maven对java项目进行构建、依赖管理。当前使用Maven的项目在持续增长。
  • Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。
  • Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。
  • 一个jar包,会有两种下载的方式。一种是直接下载压缩包,一种是提供maven下载路径。Maven最方便的就是能帮我们下载jar包。告别传统手动导包的方式。

传统的项目构建

  • 项目构建是一个项目从编写源代码到编译、测试、运行、打包、部署、运行的过程

  • 传统的使用eclipse构建项目的过程如下:
    在这里插入图片描述
    构建过程如下:
    1)在eclipse中创建一个java web工程

    2)在工程中编写源代码及配置文件等

    3)对源代码进行编译,java文件编译成class文件

    4)执行Junit单元测试

    5)将工程打成war包部署至tomcat运行

Maven的项目构建过程

  • maven将项目构建的过程进行标准化,每个阶段使用一个命令完成,下图展示了构建过程的一些阶段
    在这里插入图片描述

  • 上图中部分阶段对应命令如下:

  • 清理阶段对应maven的命令是clean,清理输出的class文件

  • 编译阶段对应maven的命令是compile,将java代码编译成class文件。

  • 打包阶段对应maven的命令是package,java工程可以打成jar包,web包可以打成war包

    运行一个maven工程(web工程)需要一个命令:tomat:run maven工程构建的优点:

  • 一个命令完成构建、运行,方便快捷。

  • maven对每个构建阶段进行规范,非常有利于大型团队协作开发。

传统项目的依赖管理

  • 就是对项目所有依赖的jar包进行规范化管理。一个java项目可能要使用一些第三方的jar包才可以运行,那么我们说这个java项目依赖了这些第三方的jar包。

  • 举个例子:一个crm系统,它的架构是SSH框架,该crm项目依赖SSH框架,具体它依赖的Hibernate、Spring、Struts2。

  • 传统的项目工程要管理所依赖的jar包完全靠人工进行,程序员从网上下载jar包添加到项目工程中,如下图:程序员手工将Hibernate、struts2、spring的jar添加到工程中的WEB-INF/lib目录下。
    在这里插入图片描述

  • 手工拷贝jar包添加到工程中的问题是:

    1、没有对jar包的版本统一管理,容易导致版本冲突

    2、从网上找jar包非常不方便,有些jar找不到。

    3、jar包添加到工程中导致工程过大。

Maven项目的依赖管理

  • maven项目管理所依赖的jar包不需要手动向工程添加jar包,只需要在pom.xml(maven工程的配置文件)添加jar包的坐标,自动从maven仓库中下载jar包、运行,如下图:
    在这里插入图片描述

  • 使用maven依赖管理添加jar的好处:

    1、通过pom.xml文件对jar包的版本进行统一管理,可避免版本冲突。

    2、maven团队维护了一个非常全的maven仓库,里边包括了当前使用的jar包,maven 工程可以自动从maven仓库下载jar包,非常方便。

使用maven的好处

通过上边介绍传统项目和maven项目在项目构建及依赖管理方面的区域,maven有如下的好处:
1、一步构建
maven对项目构建的过程进行标准化,通过一个命令即可完成构建过程。
2、依赖管理
maven 工程不用手动导jar包,通过在pom.xml中定义坐标从maven仓库自动下载,方便且不易出错。
3、maven的跨平台,可在window、linux上使用。
4、maven遵循规范开发有利于提高大型团队的开发效率,降低项目的维护成本,大公司都会考虑使用maven来构 建项目。

Maven的安装

下载安装

环境变量配置

  • Maven 3.3+ require JDK 1.7 or above to execute - they still allow you to build against 1.3 and other JDK versions by Using Toolchains
  • 电脑上需安装java环境,安装J0K1.7+版本(将JAVA_HOME/bin配置环境变量path)配置MAVEN_HOME
    在这里插入图片描述
  • 将%MAVEN_HOME%/bin 加入环境变量path
    在这里插入图片描述
  • 通过mvn-v命令检查maven是否安装成功,看到maven的版本及java版本为自己安装的版本即为安装成功。
    在这里插入图片描述

Maven仓库

仓库的作用

  • maven的工作需要从仓库下载一些jar包本地仓库就是本地文件夹,当第二次需要此jar包时则不再从远程仓库下载,因为本地仓库已经存在了,可以将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了。
    在这里插入图片描述

  • 本地仓库:
    用来存储从远程仓库或中央仓库下载的插件和jar包,项目使用一些插件或jar包,优先从本地仓库查找
    默认本地仓库位置在S{user.dir]/.m2/repository,S{user.dir}表示windows用户目录。

  • 远程仓库:

    如果本地需要插件或者jar包,本地仓库没有,默认去远程仓库下载。
    远程仓库可以在互联网内也可以在局域网内。

  • 中央仓库: 在maven软件中内置一个远程仓库地址http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它是由Maven团队自己维护,里面存储了非常全的jar包,它包含了世界上大部分流行的开源项目构件。

配置本地仓库

Maven入门

  • Maven项目工程目录约定

    使用maven创建的工程我们称它为maven工程,maven工程具有一定的目录规范,如下:

    • src/main/java——存放项目的.java文件

    • src/main/resources—-存放项目资源文件,如spring,hibernate配置文件

    • src/test/java——存放所有单元测试,java文件,如JUnit 测试类

    • src/test/resources——测试资源文件

    • target——项目输出位置,编译后的class文件会输出到此目录

    • pom.xml—-maven项目核心配置文件

  • 项目目录约定
    在这里插入图片描述

  • compile
    compile是maven工程的编译命令,作用是将src/main/java下的文件编译为class文件输出到target目录下。
    cmd进入命令状态,执行mvn compile
    查看target目录,class文件已生成,编译完成。

  • test
    test是maven工程的测试命令,会执行src/test/java下的单元测试类。
    cmd执行mvn test执行src/test/java下单元测试类

  • clean
    是maven工程的清理命令,执行clean会删除target目录的内容。

  • package
    package是maven工程的打包命令,对于java工程执行package打成jar包,对于web工程打成war包。

  • install
    install是maven工程的安装命令,执行install将maven打成jar包或war包发布到本地仓库。

声明周期

  • maven对项目构建过程分为三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是:

  • Clean Lifecycle在进行真正的构建之前进行一些清理工作。

  • Default Lifecycle构建的核心部分,编译,测试,打包,部署等等。

  • Site Lifecycle生成项目报告,站点,发布站点。

  • 概念模型图
    在这里插入图片描述

  • 一个项目生命周期(Project Lifecycle)
    使用maven完成项目的构建,项目构建包括:清理、编译、测试、部署等过程,maven将这些过程规范为一个生命周期,如下所示是生命周期的各各阶段:
    在这里插入图片描述

Eclipse中对Maven进行项目构建

添加Maven

  • 为了使得Eclipse中安装的Maven插件(现在下载的Eclipse办版本较高自带的Maven),同windows中安装的那个相同,需要让eclipse中的maven重新定位一下,点击Window->Preference->Maven->Installation->Add进行设置。如图:
    在这里插入图片描述

  • 配置Maven本地仓库,首先我们来看一个文件,文件放在maven的安装目录下面的conf子目录下面,大家打开这个文件夹可以看到有个叫settings.xml的文件夹,这个里面包含仓库地址、镜像、插件、代理等配置,也是maven中一个核心配置文件,在后面我们会经常跟她打交道。下面我来看看这个文件以及如何配置本地仓库。

    在eclipse中,点击Window->Preference->Maven->User Settings进行设置。如图:
    在这里插入图片描述

创建web项目

  • 在eclipse中用maven创建项目,右键new>>Maven Project
    在这里插入图片描述

  • 输入Maven配置信息
    在这里插入图片描述
    在这里插入图片描述

  • 刚创建完的新Maven项目会报错误(原因是缺少web.xml文件)

    方式一:

    ​ 手动添加WEB-INF文件和web.xml文件

    方式二:(推荐)

    ​ 右击该maven 项目,找到ProjectFacets取消选中Dynamic Web Module选项,点击应用,再选中Dyanmic Web Module,就会出现一个选项卡
    在这里插入图片描述

    ​ 在Content directory填写src/main/webapp
    在这里插入图片描述
    ​ 之后就会在生成两个文件夹
    在这里插入图片描述

  • 处理编辑版本,把更改 jre的版本,更改为javaSE-1.8(自己的版本对应)

    方法一:右键项目->build path->configure build path;然后点击Libraries,双击JRE选择javaSE-1.8(根据自己版本选择)
    在这里插入图片描述

    • 项目开发时候遇到点击maven update project,项目引入的jdk或者jre会变回1.5版本

    • 解决办法:
      第一步:
      在pom.xml里添加下面代码修改成jdk1.8的,这里由于本人用的是jdk1.8的,所以这里填了1.8,如果用jdk1.7的就填1.7,自己对应去填

      <build>
          <plugins>
               <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-compiler-plugin</artifactId>
                      <version>3.1</version>
                      <configuration>
                          <source>1.8</source>
                          <target>1.8</target>
                      </configuration>
                  </plugin>
          </plugins>
        </build>
      

      第二步

      右键点击项目,到properties里设置一下,这里选择1.8跟上面对应的
      在这里插入图片描述

添加依赖的jar包和插件

  1. 从网上搜索:百度maven仓库http://mvnrepository.com/tags/maven
    这网上收索的要自己加跟元素;依赖jar包需要加<dependencies>
    插件需要<build>元素和<plugins>元素

  2. 利用本地仓库,在eclipse建立索引,方便收索jar包
    打开Maven视图(window-show View-other)
    在这里插入图片描述

  3. 在本地仓库重建索引(可以很方便的对pom.xml文件进行配置)
    在这里插入图片描述

  4. 添加的方法:

    • 点击pom.xml 在这里插入图片描述

    • A填写需要的jar包名,C是选择版本,B是作用范围:

      compile 在编译时,测试时,运行时(即打包的时候也要)需要这个jar包【举例:struts2-core】;

      provided 编译时,测试时需要这个 jar包,运行时(打包)不需要【举例:jsp-api.jar;servlet-api.jar】;

      runtime测试时,运行(打包)时需要这个jar包,编译时不需要【举例:数据库驱动包】;

      Test 测试需要这个jar包,编译时,运行时(打包)不需要
      在这里插入图片描述

    • 需要手动更新下项目,jar包才对加进去在项目上右键鼠标-》Maven-》update project

  5. 用maven运行项目

    • A是用来输入maven命令的,B是以前输入的maven命令
      在这里插入图片描述
    • tomcat:run默认是6;tomcat7:run是运行7;这里运行的tomcat都不是自己下载的,都是maven的tomcat插件
      <build>
      		<plugins>
      					<!-- 配置了很多插件 -->
      			<plugin>
      				<groupId>org.apache.maven.plugins</groupId>
      				<artifactId>maven-compiler-plugin</artifactId>
      				<configuration>
      					<source>1.7</source>
      					<target>1.7</target>
      					<encoding>UTF-8</encoding>
      				</configuration>
      			</plugin>
      			<plugin>
                      <groupId>org.apache.tomcat.maven</groupId>
                      <artifactId>tomcat7-maven-plugin</artifactId>
                      <version>2.1</version>
                      <configuration>
                          <port>9090</port>
                          <!--项目名称-->
                          <path>/mgr</path>
                          <uriEncoding>UTF-8</uriEncoding>
                          <server>tomcat7</server>
                      </configuration>
                  </plugin>
      		</plugins>
      </build>
      
  6. Maven的debug
    在这里插入图片描述
    点击需要debug需要的项目
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值