网页开发基础 :Maven

Maven简介

软件开发中的阶段

ssdss需要分析: 分析项目具体完成的功能,有什么要求, 具体怎么实现。

ssdss设计阶段:根据分析的结果, 设计项目的使用什么技术, 解决难点。

ssdss开发阶段:编码实现功能。 编译代码。自我测试

ssdss测试阶段:专业的测试人员,测整个项目的功能十分符合设计要求。出一个测试报告。

ssdss项目的打包,发布阶段: 给用户安装项目

Maven能做什么

ssdss1)项目的自动构建,帮助开发人员做项目代码的编译,测试, 打包,安装,部署等工作。

ssdss2)管理依赖(管理项目中使用的各种jar包)。

ssddsss​依赖:项目中需要使用的其他资源, 常见的是jar 。 比如项目要使用mysql驱动。我们就说项目依赖mysql驱动。

没有使用maven怎么管理依赖

ssdss管理jar ,需要从网络中单独下载某个jar

ssdss需要选择正确版本

ssdss手工处理jar文件之间的依赖。 a.jar里面要使用b.jar的类。

什么是maven

ssdssmaven是apache基金会的开源项目,使用java语法开发。 Maven 这个单词的本意是:专家,内行。读音是['meɪv(ə)n] 或 ['mevn]。
ssdssmaven是项目的自动化构建工具。 管理项目的依赖

maven工具的获取和安装

ssdss地址: http://maven.apache.org/ 从中下载 .zip文件。

ssdss安装:确定JAVA_HOME 指定jdk的安装目录, 如果没有JAVA_HOME, 需要在windows的环境变量中创建JAVA_HOME, 它的值是jdk的安装目录

dssss解压缩 apache-maven-3.3.9-bin.zip ,把解压后的文件放到一个目录中。(目录的路径不要有中文, 不要有空格。)

ssdss把maven安装目录中下的bin的路径添加到path中

ssdss测试maven的安装。 在命令行执行 mvn -v

ssdssmaven解压后的目录结构:

ssssdssssdssssdssdss在这里插入图片描述

Maven的核心概念

约定的目录结构

ssdssmaven项目使用的大多人遵循的目录结构。 叫做约定的目录结构。

ssdss一个maven项目是一个文件夹。 比如项目叫做Hello

ssssdssssdssdss在这里插入图片描述
ssdssmaven的使用方式:

ssdssdssss①、maven可以独立使用: 创建项目,编译代码,测试程序,打包,部署等等

ssdssdssss②、maven和idea一起使用:通过idea借助maven,实现编码,测试,打包等等

POM

ssdssPOM: Project Object Model 项目对象模型,maven把项目当做模型处理。 操作这个模型就是操作项目。

ssdssmaven通过pom.xml文件实现 项目的构建和依赖的管理
ssssdssssdssssdssdss在这里插入图片描述

坐标

ssdss坐标组成是 groupid, artifiactId, version。 坐标概念来自数学。·

ssdss坐标作用:确定资源的,是资源的唯一标识。 在maven中,每个资源都是坐标。 坐标值是唯一的。简称叫gav

ssssdssssdssssdssdss在这里插入图片描述
ssdss项目使用gav:

sssdsssdss1.每个maven项目,都需要有一个自己的gav

sssdsssdss2.管理依赖,需要使用其他的jar ,也需要使用gav作为标识

依赖 dependency

ssdss依赖:项目中要使用的其他资源(jar)。

ssdss需要使用maven表示依赖,管理依赖。 通过使用dependency和gav一起完成依赖的使用

ssdss需要在pom.xml文件中,使用dependencies 和dependency, 还有gav 完成依赖的说明。

ssdss格式:
ssssdssssdssssdssdss在这里插入图片描述
ssdss注:maven使用gav作为标识,从互联网下载依赖的jar。 下载到你的本机上。 由maven管理项目使用的这些jar

仓库

ssdss仓库是存东西的,maven的仓库存放的是:

ssssdssdss1. maven工具自己的jar包。

sssdsssdss2. 第三方的其他jar, 比如项目中要使用mysql驱动。

ssdssdssss3. 自己写的程序,可以打包为jar 。 存放到仓库。

ssdss仓库的分类:

ssssdssdss本地仓库(本机仓库): 位于你自己的计算机, 它是磁盘中的某个目录。

ssssdssdss本地仓库:默认路径,是你登录操作系统的账号的目录中/.m2/repository C:\Users\NING MEI\.m2\repository

ssssdssdss修改本地仓库的位置:修改maven工具的配置文件(maven的安装路径\conf\setting.xml)

ssdss​ 步骤:

sssddss​ 1)创建一个目录,作为仓库使用。 目录不要有中文和空格。 目录不要太深。例如: D:\openrepository

ssssdss​ 2)修改setting.xml文件,指定 D:\openrepository这个目录<localRepository>D:/openrepository</localRepository>

sssddss​ 3)然后把提供的 仓库的资源 拷贝到 D:/openrepository

ssdss​ 远程仓库: 需要通过联网访问的

sssddss​ 1)中央仓库: 一个ftp服务器, 存放了所有的资源

sssddss​ 2)中央仓库的镜像: 就是中央仓库的拷贝。 在各大主要城市都有镜像。

sssddss​ 3)私服:在局域网中使用的。 私服就是自己的仓库服务器。 在公司内部使用的。

ssdss​ 注:maven使用仓库: maven自动使用仓库, 当项目启动后, 执行了maven的命令, maven首先访问的是本地仓库, 从仓库中获取所需的jar, 如果本地仓库没有 ,需要访问私服或者中央仓库或者镜像。
ssssdssssdssdss 在这里插入图片描述

maven的生命周期,插件和命令

ssdssmaven的生命周期: 项目构建的各个阶段。 包括 清理, 编译, 测试,报告,打包,安装,部署

ssdss插件:要完成构建项目的各个阶段,要使用maven的命令, 执行命令的功能是通过插件完成的。插件就是jar,一些类。

ssdss命令: 执行maven功能是 由命令发出的。 比如 mvn compile

ssdss单元测试(junit):

sssdsssdssjunit是一个单元测试的工具, 在java中经常使用。

ssssdssdss单元:在java中指的是方法。 一个方法就是一个单元, 方法是测试的最小单位。

ssssdssdss作用:使用junit去测试方法是否完成了要求。 开发人员自测。

ssdss使用单元测试:

ssssdssdss加入junit的依赖(一些类和方法)
ssssdssssdssdss 在这里插入图片描述
ssssdssdss在src/test/java 目录中创建测试类文件。 写测试代码

ssdss单元测试使用的建议:

ssssdssdss 1.测试类的定义, 名称一般是Test+要测试的类名称

ssssdssdss 2.测试类它的包名和要测试的类包名一样。

ssssdssdss 3.在类中定义方法,要测试代码。

sssssdsssdssdss 方法的定义:

sssssdssssdsssdssdss public方法, 没有返回值.

sssssd ssssdsssdssdss方法名称自定义(建议 Test+测试的方法名称)

sssssd ssssdsssdssdss方法没有参数

ssssdssdss 4.在测试类中的方法,可以单独执行。 测试类也可以单独执行

ssssdssdss 5.在方法的上面加入@Test

ssdss命令:

sssdss 1.mvn clean: 清理命令, 作用删除以前生成的数据, 删除target目录。 插件: maven-clean-plugin , 版本是 2.5

sssdss 2.mvn compile:编译命令,执行的代码编译, 把src/main/java目录中的java代码编译为class文件。

ssssdsdss同时把class文件拷贝到 target/classes目录。 这个目录classes是存放类文件的根目录(也叫做类路径,classpath)

ssssdsdss 插件: maven-compiler-plugin 版本3.1。 编译代码的插件 maven-resources-plugin 版本2.6 。 资源插件, 处理文件的。 作用是把src/main/resources目录中的 文件拷贝target/classes目录中。

sssdss 3 mvn test-compile: 编译命令, 编译src/test/java目录中的源文件, 把生成的class拷贝到target/test-classes目录。同时把src/test/resources目录中的文件拷贝到 test-clasess目录

ssssdsdss 插件:maven-compiler-plugin 版本3.1。 编译代码的插件 maven-resources-plugin 版本2.6 。 资源插件, 处理文件

sssdss 4 mvn test:测试命令, 作用执行 test-classes目录的程序, 测试src/main/java目录中的主程序代码是否符合要求。

ssssdsdss插件: maven-surefire-plugin 版本 2.12.4

sssdss 5 mvn package:打包,作用是把项目中的资源class文件和配置文件都放到一个压缩文件中, 默认压缩文件是jar类型的。 web应用是war类型, 扩展是jar,war的。

ssssdsdss插件:maven-jar-plugin 版本 2.4。 执行打包处理。 生成一个jar扩展的文件, 放在target目录下.

ssssdsdss打包的文件包含的是 src/main目录中的所有的生成的class和配置文件和test无关。

ssssdsdss 生成的是 ch01-maven-1.0-SNAPSHOT.jar

 <groupId>com.bjpowernode</groupId>
  <artifactId>ch01-maven</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
打包的文件名: artifactId-version.packaging

sssdss 6 mvn install : 把生成的打包的文件 ,安装到maven仓库。

ssssdsdss插件: maven-install-plugin 版本 2.4 。 把生成的jar文件安装到本地仓库。

ssssdsdss查看查看中的jar文件:

<groupId>com.bjpowernode</groupId>
  <artifactId>ch01-maven</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

groupId中的值, 如果有 "." 前和后都是独立的文件夹。 com\bjpowernode
artifactId, 独立的文件夹
version,独立的文件夹
自定义配置插件

ssdss在pom.xml文件中, build标签中。设置插件

<!-- 设置构建项目相关的内容 -->
<build>
  <plugins>
    <!-- 设置插件 -->
	<plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-compiler-plugin</artifactId>
		<version>3.8.1</version>
		<configuration>
			<source>1.8</source> <!-- 指定编译代码的jdk版本 -->
			<target>1.8</target> <!-- 运行java程序使用的jdk版本-->
		</configuration>
	</plugin>
  </plugins>
</build>

Maven和idea的集成

idea中集成maven

ssdssidea中有一个自带的maven。 我们要让idea使用自己安装的maven。

ssdsds选择File- Settings
ssssdsdsssdsdsdsds在这里插入图片描述
ssssdsdsssdsdsdsds在这里插入图片描述
ssssdsdsssdsdsdsds设置项: -DarchetypeCatalog=internal

ssdsdsFile - Other Settings (同上设置)
ssssdsdsssdsdsdsds在这里插入图片描述

创建基于maven的普通java项目

ssssdsdsssdsdsdsds在这里插入图片描述

创建web项目

ssssdsdsssdsdsdsds在这里插入图片描述

导入module到idea

ssssdsdsssdsdsdsds在这里插入图片描述

依赖管理

idea中集成maven

ssdss依赖范围:使用scope表示依赖的范围。

ssdss依赖范围表示: 这个依赖(jar和里面类)在项目构建的那个阶段起作用。

ssdss依赖范围scope :

ssssdssdsscompile:默认, 参与构建项目的所有阶段

sssdsssdsstest:测试,在测试阶段使用, 比如执行mvn test会使用junit 。

sssdsssdssprovided: 提供者。 项目在部署到服务器时,不需要提供这个依赖的jar , 而是由服务器这个依赖的jar包

sssdssssdsssdss明显的是servlet 和jsp 依赖

常用设置

ssdss讲的是properties它里面的配置

ssssdsdsssdsdsdsds在这里插入图片描述
ssdss全局变量

ssdsss在properties定义标签,这个标签就是一个变量, 标签的文本就是变量的值。

ssdsss使用全局变量表示 多个依赖使用的版本号。

ssdsss使用步骤:

ssdssssdss1 . 在properties标签中,定义一个标签,指定版本的值
ssssdsdsssdsdsdsds在这里插入图片描述
ssdssssdss2 . 使用全局变量, 语法 ${变量名}
ssssdsdsssdsdsdsds在这里插入图片描述
ssdssssdss3 .使用资源插件

ssdssssssdssdss处理的配置文件的信息, maven默认处理配置文件

ssdssssssdsssdssdss①:maven会把src/main/resources目录中的文件, 拷贝到target/classes目录下

ssdssssssdsssdssdss②:maven只处理src/main/java目录中的 .java文件,把这些java文件编译为class,拷贝到 target/classes目录中。 不处理其他文件。

ssssdsdsssdsdsdsds在这里插入图片描述

💖感谢各位的暴击三连~💖

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值