ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

maven入门 02: part2

2022-08-04 17:00:08  阅读:130  来源: 互联网

标签:02 文件 java 仓库 jar maven part2 测试


Part2

maven约定的项目结构

构建一个简单的maven项目

  • 每一个maven项目在磁盘中都是一个文件夹,下面以项目:Hello为例
  - Hello                                                         //项目名称
    - src                                                   
      - main							  //存放主程序里的java代码和配置文件
        - java                                                    //程序包和包中的java文件
        - resources                                               //java文件中要使用的配置文件

      - test                                                      //存放测试程序代码和文件,可以没有
        - java                                                    //测试程序包和包中的java文件
        - resources                                               //测试java程序中要使用的配置文件
    - pom.xml                                                     //maven的核心文件,maven项目必须要有
  • 在Hello/src/main/java下创建,创建包和java文件,并编写类文件HelloMaven.java
    • 此时的java文件所在路径:Hello/scr/main/java/wangxun/HelloMaven

mvn complie 命令

  • 在项目Hello下执行命令:mvn complie
    • 会编译Hello/src/main目录下的所有java文件
  • 此过程会下载许多东西
    • 为什么要下载很多内容?(特别是第一次执行时)
      • maven工具执行的操作需要很对插件,需要额外下载
    • 下载了哪些东西?
      • 下载了很多需要的插件,本质是jar文件
    • 下载的内容存放到了哪里?
      • 默认仓库(本机仓库):用户目录下的一个隐藏目录,".m2/repository"
  • 执行完mvn compile,看到build success
    • 在项目的根目录下生成target目录(结果目录),maven编译的java程序,最后的class文件都放在target目录中

设置本机资源的存放位置

  • 修改maven的配置文件,maven安装目录/conf/setting.xml
    • 修改前先备份
  • 修改 < localRepository > 标签里的内容为你自定义的仓库目录

maven仓库

什么是仓库

  • 仓库是存放东西的,用来存放maven使用的jar包和我们项目中使用的jar包
    • maven使用的插件
    • 我们项目使用的jar包(比如:第三方工具)

仓库的分类

  • 本地仓库:个人计算机上的文件夹,存放各种jar包
  • 远程仓库:互联网上的,使用网络进行访问
    • 中央仓库:最权威的,所有开发人员都使用的一个集中仓库
    • 中央仓库的镜像:某种意义上的中央仓库的备份,在各大洲或者重要的城市中分布
    • 私服:在公司内部,通过局域网访问,不对外使用

仓库的使用

  • 不需要开发人员参与

  • 仓库的调用

    本地仓库	---->	私服    ---->    镜像    ---->    中央仓库   
            <----          <----           <----
    

pom

存在形式

  • maven项目对象模型,是一个pom.xml文件

坐标

  • 唯一值,在互联网中唯一标识一个项目
    • 公司域名的倒写
    • 自定义项目名称
    • 自定义版本号
  • 我们要使用权威的,公共的jar包时
    • 在https://www.mvnrepository.com的中央仓库中搜索
    • 搜索的依据:目标jar包的坐标

packaging

  • 打包后压缩文件的扩展名,默认是jar,web应用是war
  • packaging可以不写,默认是打成jar包

依赖

  • dependencies和dependency,相当于java代码中的import

  • 对项目中要使用的各种资源进行说明,例如需要mysql驱动

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.9</version>
        </dependency>
        <!--
    	还可以添加更多其他的依赖
        -->
    </dependencies>
    

properties

  • 设置属性

build

  • maven在进行项目构建时,需要参考的配置信息
    • 例如:指定编译java代码使用的jdk的版本等

maven生命周期

  • 就是maven构建项目的过程
    • 清理
    • 编译
    • 测试
    • 报告
    • 打包
    • 安装
    • 部署等

maven命令

  • maven可以独立使用,通过命令,完成maven的生命周期的执行

常用命令

  • mvn clean
    • 清除原来编译和测试的目录,即target目录,但是已经install仓库里的包不会清除
  • mvn compile
    • 编译/src/main/java目录下的所有".java文件"为".class"文件,并将".class"文件放置到target/classes目录下
  • mvn test-compile
    • 编译/src/test/java目录下的所有".java文件"为".class"文件,并将".class"文件放置到target/test-classes目录下
  • mvn test
    • 操作maven生命周期中的某个步骤时,如果前面的步骤没有执行则会先将前面空缺的步骤走完,再执行本次命令
    • 进行测试,显示测试结果到屏幕,并生成surefire-reports目录,保存测试结果
  • mvn package
    • 编译,编译测试文件,测试,并且按照pom.xml配置把主程序( /src/main/* )打包成jar包或者war包
  • mvn install
    • 将打包好的jar包,安装到本地maven仓库中
    • 在仓库里的存放位置,参考原maven项目里pom.xml里的项目坐标

maven的插件

  • maven命令执行时,真正完成功能的是插件
    • 插件就是一些jar文件,本质就是一些类文件

单元测试

  • junit

    • 一个专门用来测试的小框架
    • 可以测试类中的方法,,每个方法都是独立测试的,方法是测试的基本单位
    • maven借助单元测试,批量的测试类中的大量方法是否符合预期
  • 使用步骤

    • 在pom.xml文件中加入单元测试依赖,示例如下:

      <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.11</version>
          <scope>test</scope>
      </dependency>
      
    • 在maven项目中的src/test/java目录下,创建测试程序

      • 测试目录的包名参考原包名
      • 推荐的创建类和方法的命名规范
        • 测试类的名称:Test + 待测试类的名称
        • 测试的方法名称:test + 待测试的方法名称
    • 测试示例:待测试的类为HelloMaven

      //1. 创建测试类:TestHelloMaven
      
      //2. 创建测试方法
      @Test
      public void testAdd(){
          //测试HelloMaven的add方法是否正确
          //需要用到junit提供的测试方法
      }
      
      • 说明:
        • 方法是public的,必须的
        • 方法没有返回值,必须的
        • 方法名称是自定义的,推荐:test + 待测试方法名
        • 在方法上加入:@Test

标签:02,文件,java,仓库,jar,maven,part2,测试
来源: https://www.cnblogs.com/nefu-wangxun/p/16551137.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有