Maven笔记
第一章Maven的简介
1.1软件开发中的阶段
1)需求分析
2)设计阶段
3)开发阶段:编译代码、自我测试。
4)测试阶段
4)项目打包、发布阶段:给用户安装项目
1.2Maven能做什么
1)项目的自动构建,帮助开发人员做项目代码的编译、测试、打包、安装、部署等工作。
2)管理依赖:管理项目中的各种Jar包;没有Maven的时候需要单独下载jar,然后手工添加依赖
1.3什么是Maven
Maven单词本身的意思是专家的意思。是自动化构建工具
1.4Maven中的概念
1)POM(Porject Object Model)项目对象模型,Maven把项目当做模型来处理
2)坐标:由groupId、artifactId、version组成。每个Maven项目中都有一个属于自己的Gav
groupId:组织名称,代码。公司,团体或者单位的标识。
artifactId:项目名称
Version:版本,项目的版本号,三位数字组成。SNAPSHOT,表示快照,是一个不稳定的版本。
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<!--打包类型-->
<packaging>jar</packaging>
</dependency>
</dependencies>
3)依赖(dependency):项目中要使用的其他资源
4)packaging:项目打包类型:有jar、war、rar
5)仓库:使用来存东西的,maven仓库存放的是
1.本地仓库(本机仓库):位于自己计算机的某个磁盘中,一般在C盘下
修改仓库的位置:在settings.xml文件中:
<localRepository>D:/MavenIDEA/repository</localRepository>
![在这里插入图片描述](https://img-blog.csdnimg.cn/c7b758e0e42d4f5084519855221ef454.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p-a56ia5aeQ5aeQ,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center
2.中央仓库:一个ftp服务器,存放了所有资源
3.中央仓库镜像:就是中央仓库的拷贝
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
4.私服:在局域网中使用。私服就是自己的仓库服务器,在公司内部使用。
1.5Maven的生命周期,插件和命令
1)maven的生命周期:项目构建的各个阶段,包括清理、编译、测试、报告、打包、安装、部署。
2)插件:要完成构建项目的各个阶段,要使用Maven的命令,执行命令的功能是通过插件来实现的
单元测试Junit
单元:在Java中指的是方法。一个方法就是一个单元,方法是测试的最下单位。
网址:https://mvnrepository.com/artifact/mysql
使用单元测试:
1)首先加入单元测试的依赖
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
2)maven的命令
-
mvn compile:编译命令,执行代码的编译。
插件是:maven-compiler-plugin和maven-resources-plugin。
-
mvn clean:作用是删除以前生成的数据,插件是maven-clean-plugin
-
mvn test:测试命令
-
mvn package:打包,把项目中的资源class文件和配置文件放到一个压缩文件中,默认压缩是文件是jar。web应用是war类型、扩展是jar、war。插件是maven-jar-plugin
-
mvn install:把生成的打包文件安装到maven仓库中
-
mvn deploy:部署
1.6自定义配置插件
<!--设置构建项目相关的内容-->
<build>
<plugins>
<!--设置插件-->
<plugin> I
<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的集成
2.1idea中集成的maven
1.设置两处maven的属性
第一处在:File–》settings–>搜索maven,然后进行设置
第二处:Settings for new projects—>找到maven
2.创建一个空的工程,然后用模板创建java项目
2.用模板创建web项目
3.在web项目的pom.xml中添加依赖
<!-- servlet的依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!--jsp的依赖 -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
4.TomCat的部署
第三章依赖管理
依赖范围:使用scope表示依赖范围
依赖范围表示:jar和里面的类在项目的构建的哪个阶段中起作用
- comlipe:默认,参与构建项目的所有阶段
- test:测试,在测试阶段使用
- provided:提供者。项目部署到服务器,不需要依赖Jar包
常用设置
1.properties
<properties>
<!-- 项目构建时使用的编码,避免中文乱码-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--源代码编译时jdk的版本 -->
<maven.compiler.source>1.7</maven.compiler.source>
<!-- 运行代码的jdk版本-->
<maven.compiler.target>1.7</maven.compiler.target>
<!--生成报告的编码-->
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
2.build
<bui1d>
<!--资源插件告诉maven把 src/main/java目录中的指定扩展名的文件拷贝到target/classes目录中。-->
<resources>
<resource>
<!--所在的目录-->
<includes>
<directory>src/main/java</directory>
<!--包括目录下的. pr operties , .xm1文件都会扫描到-->
<include>**/*.properties</include>
<include>**/*.xm1</include>
</includes>
<!--filtering选项false 不启用过滤器,*.property已经起到过滤的作用了-->
<filtering>false</filtering>
</resource>
</resources>
</build>