maven课堂笔记

一).传统的项目开发有哪些问题
不使用maven开发项目叫做传统项目
为什么要是maven作为构建项目的工具,传统项目有哪些缺点。
1.要使用jar,使用某个工具库,比如使用myql驱动。
需要从myql的官网上,下载mysql的驱动, 然后把mysql驱动的jar文件拷贝到你的项目中。

2.需要确定使用的jar文件版本

3.需要把相关的所有jar都下载好你才能使用。
比如你的项目要使用a.jar ,但是a.jar需要使用b.jar中的类, 你肯定需要先下载b.jar, a.jar才能使用。

4.大型项目中有许多的模块,人为管理比较困难。 管理不同模块之间的关系比较费时费力。容易错误。
模块:就相关的功能放在一起。 便于项目功能的管理, 工作的分配。

5.相关的代码的编译,测试,部署都是人为实现,比较费时费力。

二).maven能做什么?
maven一个项目的构建工具,帮助开发人员构建项目。
构建项目:帮助开发人员完成整个项目从开发到测试上线整个过程。
maven具体能做哪些构建任务:
1.清理,把已经构建历史数据清除,删除。为下一次构建项目创建新的环境。
2.编译:maven能够把整个项目的代码一次全部编译。 你项目中所有的java文件编译为class文件
3.测试:maven能执行一些测试代码,用来测试你写的功能是否正确。(开发人员自己写的代码需要自己先测试)
maven可以一次性测试成百上千的代码。一次执行很多的测试功能。
4.报告:maven可以把测试的结果写成以为文件,这个文件叫做报告。
5.打包:把项目中代码和其他的配置文件放到一个压缩文件中。 这个压缩文件就是打包的结果。
打包就是生成项目的压缩文件(代码和配置文件)。这个压缩文件对应java项目是 .jar扩展名的。
例如myapp.jar , 对于web项目这个压缩文件扩展名是.war, 例如myweb.war.
目的是:可以把压缩文件部署到服务器。
6.部署:把项目中的代码和配置文件放到服务器上执行。

maven项目中的功能还有:
1.管理大型项目中的多个模块,管理模块的关系,统一编译,打包这些模块。
2.管理jar,自动从互联网下载jar文件,并把jar文件加入到你的项目中。
3.管理jar的版本。同时能管理jar文件之间的关系。例如a.jar需要使用b.jar中的类。 只需要项目中加入a.jar,
然后maven负责分析a.jar需要b.jar,然后maven会自动从互联网下载b.jar,加入到项目中。
4.管理jar文件的源代码,文档资源。可以从互联网下载jar对应的源代码和文档。

三)maven的核心概念
了解maven中的一些名词, 通过这些概念了解maven的工作方式
①POM (Project Object Model) : 对应是一个叫做pom.xml文件。 这个文件叫做项目对象模型。
maven把项目的构建的顺序,步骤,以及做什么把这些固定为一个模型(模板)。通过这个模块可以构建任意的项目
模型就是pom.xml文件,maven主要使用这个文件,构建项目,执行管理jar的功能。

②约定的目录结构
  maven规定了你项目中的java文件,配置文件,测试类的代理他们的位置。 这些文件都会固定的位置说明。
       把这些固定的位置叫做约定 ,约定可以改,不建议改。 如果你要改这些固定的位置,把这样的操作叫做修改配置。
       maven的使用建议是约定大于配置。

③坐标
   指定jar的唯一标识。
   
④依赖管理
  管理jar文件之间的关系 , a.jar需要b.jar
  
⑤仓库管理
  jar文件存放在哪
  
⑥生命周期
   项目构建的全过程,会经历清理,编译,测试,报告,打包,部署,发布等过程。
   
⑦插件和目标
   插件就是一些类,完成了一些功能。 
   目标就是插件要干什么
⑧继承
⑨聚合

四)安装maven工具
maven是使用java语法编写的,他的执行需要jdk环境。
1)从maven的官网可以下载maven的安装文件apache-maven-3.3.9-bin.zip(绿色版本的)
2)解压缩文件,放置到一个目录,比如E:\mytools\apache-maven-3.3.9
maven的目录说明:
bin:maven的可执行命令 mvn
maven工具可以独立使用,可以和idea开发工具一起使用。
maven单独使用,是通过mvn命令执行程序代码的编译,测试,报告,打包,部署的。
maven和idea一起使用,可以通过idea中的操作完成代码的编译,测试,报告,打包,部署的

  conf:配置文件目录
       maven的配置文件,通过配置文件可以控制maven的行为。
       配置文件名称: settings.xml

3)如果你希望在命令行中,使用mvn的命令,需要配置环境变量
创建一个环境变量名 M2_HOME赋值为 maven工具的安装目录
给M2_HOME赋值为 maven工具的安装目录

注意: 所有的目录不要使用中文。

例如你的maven 安装在 E:\mytools\apache-maven-3.3.9
M2_HOME 值就是 E:\mytools\apache-maven-3.3.9

4)在path路径中加入 %M2_HOME%\bin;

5)测试maven的安装是否正确。
在cmd命令行中执行 mvn -version

出现下面的内容就是正确的
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: E:\mytools\apache-maven-3.3.9\bin…
Java version: 1.8.0_40, vendor: Oracle Corporation
Java home: C:\java\JDK8-64\jre
Default locale: zh_CN, platform encoding: GBK
OS name: “windows 8.1”, version: “6.3”, arch: “amd64”, family: “dos”

============================================================================
maven的概念和使用
maven的使用可以分为两种: 1. maven独立使用。2.可以和idea等开发工具一起使用。

1.maven项目约定的目录结构:
约定的目录结构:maven这个工具规定了代码和配置文件放置的目录位置。这些目录名是定义好的。

 一个项目在一个文件夹中管理的。比如项目叫做Hello
 Hello 文件夹
   src\
   ----main\ 主程序的代码(开发项目功能的代码servlet,service,dao等等)
   ---------java      -程序代码
   ---------resources -执行程序时需要使用的配置文件
   ----test\ 测试程序的,不是完成项目功能的,测试main目录下的java程序是否符合要求。
   ---------java      -测试用的程序代码
   ---------resources -测试程序执行时需要的配置文件
   pom.xml
 
 
 执行maven的命令,需要在pom.xml文件所在的位置。
 mvn compile maven编译java代码的命令,编译程序把java编译为class
 
 maven执行命令,完成功能是通过插件(plugin)完成的,插件就是写的一些类(jar文件中)。
 这些插件,还有maven执行时,项目需要的jar文件都是maven从互联网下载的, 第一次使用maven
 会出现很多的Downloading.... http://repo.xxxx.xxx.jar
 
 maven会下载很多的jar文件,为了执行maven命令,让maven工具可以使用。 下载的这些jar文件是存放到
 你的本机的一个目录中, 这个目录叫做仓库。 如果你的仓库有maven使用的jar ,就不用从互联网下载了。
 如果没有就需要联网下载。 如果下载不了,就不能使用maven的功能了。
 
 
 maven的默认仓库:C:\Users\你登录windows的用户名\.m2\repository ,默认仓库的目录可以修改
 修改maven的本地仓库:
    把maven的需要的资源都放到了repository文件夹, 这个文件夹名字是自定义的。 这个文件夹放到
    一个非中文目录。repository这个文件夹中的内容,是我下载好的,是我使用maven工具下载的。
     
    找到maven的配置文件, 在maven安装目录的/conf目录下/settings.xml
    找到  <localRepository>/path/to/local/repo</localRepository> 把标签里面的内容换成你自定义的
    仓库的目录路径。
    
    例如 <localRepository>E:/work/repository</localRepository>
      
 

 ***********************************
 mvn compile的作用和结果
   作用:1)编译java程序,把java程序编译为class。 
         2)把src/main/resources/目录中的文件全部拷贝到 target/classes/目录中
   结果:把编译好的java文件变为class文件放到target目录中。
         target就是结果目录,maven执行任何命令,处理的文件结果都放到这个目录中。
         traget/classes:是编译后的class文件, 这个classes目录叫做类路径(类文件存放的位置)

  1. Project Object Model 项目对象模型(pom.xml)

    maven工具执行操作,构建项目都依赖这个pom.xml。 这个文件定义了maven构建项目,执行maven管理jar
    这些功能的实现步骤,顺序,资源的是呀。

    只要是maven项目必须有一个pom.xml

pom.xml文件的内容有哪些:
1). 约束文件是固定值:

2). 4.0.0
表示pom这个模型的版本。 现在只有4.0.0这个值。

3). 坐标
com.wkcto.maven
ch01-maven
1.0-SNAPSHOT

groupId:表示组织的,公司,企业的唯一标识。 在互联网上使用的是域名表示一个组织。
         www.baidu.com  ,groupId使用的是域名的倒写。
         例如 com.baidu
              com.bjpowernode
              com.baidu.applo 
              自己没有域名, 自己定义一个, com.hewang
              
artifactId:项目名, 比如 oa , shop , bjpowernode-crm
           项目名在一个组织,公司中一定是唯一的
           
version   :版本号, 都是数字。 一般使用三位  1.1.2
            还有一种特殊的 例如 1.1.2-SNAPSHOT 快照(项目人员正在开发的版本,不是最后可以使用的)。 
            
maven使用这个三个值唯一的定位互联网中的资源。 groupId,artifactId 组合检查gav

4). packaging :打包文件的扩展名
   packaging是打包,把整个项目所有的class文件和配置文件都压缩放到一个文件中。
   这个文件叫做打包文件。 形成这个文件的过程叫做打包。
   
   packaging打包是什么类型:
      java程序,打包文件是 .jar扩展名
      web应用:打吧问就是 .war扩展名
      
     jar和war里面主要放的是class文件和其他的配置文件

              
          
5). dependencies 和 dependency  :依赖。
依赖: 比如你的项目中要访问数据库 ,需要使用mysql驱动。
       这时就是你的项目依赖mysql驱动才行执行项目。
       后者 a.jar 要使用 b.jar中的类,叫做a依赖b
       
maven的一个强项是管理依赖,依赖主要是各种jar文件。
     maven可以下载jar包到你的仓库
     maven可以管理jar的版本
     maven管理依赖,a需要b,maven会自动分析依赖,下载b.
     maven可以下载管理这些jar的文档和源代码
     
例如:
<dependencies>
 <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
 </dependency>
 
 <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
 </dependency>
 
  。。。。

6). properties 设置maven的一些使用的属性值

7). build:构建
设置maven编译程序,测试,构建项目时的一些参数设置。

8). parent 继承

9). modules 聚合

3.仓库
仓库是存放东西的, 存放什么?
1.maven工具运行时需要的jar文件,jar叫做插件
2.项目自己的jar,资源
3.第三方的jar文件。

maven中仓库分类:
1.本地仓库:就是在你的本机上的文件夹,存放了下载好的jar包
2.远程仓库:是使用互联网访问的。
1.中央仓库:是全世界的开发人员使用的最权威的,资源最全的仓库。
仓库就是一个ftp服务器。

    2.中央仓库的镜像:中央仓库的拷贝,在各大洲都有自己的镜像。作用是分担中央仓库的压力
    
    3.私服:在一个公司内部,自己的局域网使用的。保密性会好。

maven如何使用仓库:
项目需要使用某个jar—maven寻找jar。

maven寻找jar:
  1.先去找本地仓库,搜索本地仓库,如果有资源。把资源给你的项目。 maven处理到此结束。
  2.如果本地仓库没有,公司有私服就去私服寻找资源,如果私服有资源, 把资源给项目。maven处理到此结束。
  3.如果本地仓库没有,公司没有私服,maven去找中央仓库的镜像。找到资源返回给项目。 maven处理到此结束
  4.如果本地,中央仓库镜像都没有,maven去中央仓库查找资源,能找到返回给项目,如果找不到。
   可能是你给的gav坐标无效。 maven处理到此结束
   
maven查找资源使用的gav坐标。

maven使用仓库简单说:先找本地仓库没有,就找网络中仓库。 

资源搜索地址:https://mvnrepository.com/ ,使用gav中的一部分作为条件。搜索要使用的资源

  1. maven的生命周期,插件,命令

    1)maven的生命周期: maven构建一个项目从开始到结束。这个生命周期经历了多个阶段。
    每个阶段是可以独立使用的。
    阶段:

    1. 清理:把项目之前编译或使用过的资源清除到,为新的构建做准备。
    2. 编译:编译java代码,把配置文件放到target/classes目录下
    3. 测试:测试你的主程序的功能,开发人员自己做测试
    4. 报告:把测试的结果形成文件
    5. 打包:测试通过后 ,打包项目,目的是把项目部署到服务器,让测试人员测试。
    6. 部署:把打包后的项目放到服务器,让可以使用。
    7. 发布:把项目安装到各个环境中。

    maven的生命周期执行时, 会把当前阶段之前的阶段都执行了。

2)命令:maven通过命令执行上面的各个阶段
清理: mvn clean
编译:mvn compile 编译src/main/java中的程序
mvn test-compile 编译src/test/java中的程序
测试 mvn test 执行src/test/java目录中的程序的
打包 mvn package 把项目生成压缩文件 ,java的是jar文件, web的war文件、
安装 mvn install 把你的打包后的jar,war安装到你的本地仓库。就是把jar文件拷贝到你的仓库中
部署和发布: mvn deploy

  1. 插件,执行maven命令用的插件
    每个maven命令都有对应的插件
例如执行mvn compile 对应的是 maven-compiler-plugin插件,提供了编译代码的功能

maven的生命周期各阶段是使用maven命令执行,每个命令都是插件来干活的。

  1. 介绍单元测试 junit
    junit:是java语言中非常有名的测试框架, 专门是做测试工作的,测试你写的service,dao里面的方法是否正确的。
    junit是测试方法的执行效果。 证明方法是否正确。

    在java中方法是最小的可执行单元, 所以junit叫做单元测试。 测试的是方法
    对每个方法单独测试。

    junit可以一次测试很多的方法, 一次测试100方法的执行。

    怎么使用单元测试:

    1. 项目中加入junit依赖,就是junit的类加入到你的项目中。
      在pom.xml中在 里面加入

      junit junit 4.12 test

    2.在src/test/java目录下创建java程序。定义方法测试代码的功能
    建议:1) 测试的是 com.wkcto.service.HelloService
    你在src/test/java目录下创建 同名的包,有就是 com.wkcto.serivce
    创建测试类,一般是你测试的类名加入Test开头。 TestHelloService

           2) 如果你的HelloService里面的方法叫做 addNumber()
              测试类TestHelloService的方法叫做 testAddNumber(),就是test开头加入方法名称。
            
       
    测试用的方法叫做单元测试方法。这个方法的定义要求是
    1)是public方法
    2)方法没有返回值 void
    3)方法没有参数
    4)方法的上面加入 junit框架中的注解 @Test . 这样这个方法就可以单独执行。类似main方法的使用
            
    例如: @Test
           public void TestAddNumber(){
              HelloService service = new HelloService();
              int res  = service.addNumber(10,20);
              //判断res是否正确
              单元测试,junit框架中一般使用Assert类,判断结果是否符合预期。
              如果正确,程序没有异常, 如果不符合预期,抛出异常,测试就是失败。 
              // 期望值,实际值
              Assert.assertEquals(30,res);
           }
    

=====================================================================================
第二章掌握的:
1) pom.xml文件的作用和内容。
2) 坐标是什么
3) 依赖怎么用

=====================================================================================
第三章:idea中如何使用maven创建 java项目和web项目
1。在idea中配置maven
File-Settings 这个设置对当前项目生效的。

1)确定你的maven工具设置了本地仓库。
   <localRepository>E:/work/repository</localRepository>
2)打开idea,选择【File】-Settings--Build Exection Deployment--Build Tools--Maven
   maven home directoty: maven这个安装工具的目录位置。目录是到bin之前的目录就可以
                         例如: D:\tools\apache-maven-3.3.9
   user settings file: maven的配置文件路径
   local reposity : 本地仓库的位置
   
3)选择File-Settings--Build Exection Deployment--Build Tools--Maven--Runner
  在VM Options位置设置(区分大小写): -DarchetypeCatalog=internal 

2.在设置一次 【File-Other Settings–Settings For New Project】 设置idea新建 project时生效的。
1)打开idea,选择 Build Exection Deployment–Build Tools–Maven
maven home directoty: maven这个安装工具的目录位置。目录是到bin之前的目录就可以
例如: D:\tools\apache-maven-3.3.9
user settings file: maven的配置文件路径
local reposity : 本地仓库的位置

2)选择File-Settings--Build Exection Deployment--Build Tools--Maven--Runner
  在VM Options位置设置(区分大小写): -DarchetypeCatalog=internal 

===================================================================================

课后做什么
1.设置maven工具本地仓库
2.设置idea中的maven
3.创建一个maven的java项目
4.熟悉pom文件, 依赖,坐标的概念

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值