初识Maven
1基本安装及测试
下载地址:https://maven.apache.org/download.cgi
-
解压到指定位置中【路径不可以有中文与空格】
-
配置path:名称为MAVEN_HOME【与Java配置环境变量基本一致】
- 测试是否成功:
- 打开命令行
- mvn -v
- 测试是否成功:
-
本地仓库默认地址:
-
安装目录下;
-
conf --> settings.xml设置如下命令
-
Default: ${user.home}/.m2/repository【每个电脑的地址不一样】
-
实际地址:【C:\Users\罗先生.m2\repository】
-
本地仓库路径设置:<localRepository>/path/to/local/repo</localRepository>
<!-- localRepository | The path to the local repository maven will use to store artifacts. | | Default: ${user.home}/.m2/repository <localRepository>/path/to/local/repo</localRepository> --> <!-- 通过如下标签配置 --> <localRepository>/path/to/local/repo</localRepository>
-
-
联网状态下:会自动从【*仓库】中下载部分jar包
-
断网状态下:可以设置远程仓库【私服】
- 远程仓库中的jar包可以从*仓库下载
- 也可以本地上传
-
1.1Maven可以干什么
- 依赖管理:导入jar包,解决jar包冲突问题
- 翻译、编译Java代码
- 单元项目测试
- 打包项目,以供部署
1.2安装目录中,每个文件夹的主要用途
- bin:程序主要
- boot:maven依赖jar包
- conf:maven配置文件夹
- setting.xml:maven主要配置文件
- lib:maven集成jar包
1.3基础命令
- mvn:部署项目
- mvnDebug:测试项目
1.4 Maven项目标准目录结构
2. 常用命令
-
mvn clean:删除编译后文件夹【target】
-
① mvn compile:重新编译Java文件【重新生成target文件夹】
src/main/java中Java代码
-
② mvn test:测试项目,并在【target】文件夹中生成【test-classes】测试文件夹
执行 ② ① src/test/java and src/main/java -
③ mvn package:打包项目资源 ,重新编译Java文件【重新生成target文件夹】,并生成相对应war包
执行 ③ ② ① -
④ mvn install:包括【compile、test、package】的所有功能,不仅在本地仓库,生成相对相应的项目【生成war包】,也在本地仓库中,生成相对应的项目【生成war包】
执行 ④ ③ ② ① -
⑤ mvn deploy:发布
执行 ⑤ ④ ③ ② ①
3.生命周期
4. 概念模型
4.1 pom.xml中信息说明:
4.1.1 项目自身信息
<groupId>com.itheima</groupId>
<artifactId>maven_java</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
4.1.2项目运行所依赖jar包关系
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
5. IDEA集成maven
使用Idea集成的maven创建工程时,都不会再导入jar包了,都是放在本地仓库中,如果,不知道叫什么,或者是,不清楚在本地仓库存在的id和jar包名称以及版本号【<groupId>、<artifactId>、<version>】也就是这三个标签不知道怎么写的时候,可以在电脑联网时,从maven的*仓库中搜索配置即可。
具体操作步骤如下:
- 打开maven的*仓库网址【百度直接搜索maven*仓库,第一个就是】:https://mvnrepository.com/
- 在网站搜索栏中直接搜索所需要的jar包名称:例如:druid、dbutils、tomcat等
- 然后点击适合的标签【一般都是第一个】:
- 进去之后选择想要的版本,点击即可:
- 知道看到下方有一个maven标签,标签中有上方提到的一些配置信息【<groupId>、<artifactId>、<version>】,将这些信息统统复制
- 打开idea项目中的prom.xml文件,在【<dependencies>】 这个标签中配置即可
- 注意
- 当然还是使用本地仓库的好,不需要下载或者联网
- 也可以选择b2b,也就是私服,但是,目前还没有接触,所以不知道如何设置
5.1 集成步骤
- 首先保证本地maven安装成功,【通过mvn -v 命令测试】
- 打开idea设置:搜索maven
- 找到Build Tools下的Maven 选项卡
- 设置本地Maven 路径:【Maven home directory】
- 设置本地Maven中setting.xml配置文件路径:【User setting file】
- 设置本地仓库路径:【Local repository】
- 为了加快IDEA加载速度,上一次联网下载过的jar包不再下载,可以进行如下配置
- 找到Maven 选项卡中的Runner
- 设置其 【VM Options】内容为:-DarchetypeCatalog=internal
5.2 使用IDEA创建MAVEN工程
5.2.1 使用骨架创建maven的Java工程
创建一个文件夹,设置为资源根目录
5.2.2 不使用骨架创建maven的Java工程
简单来说,选择maven 标签后,一直next 即可
5.2.3 使用骨架创建maven的Java Web工程
5.3注意事项
每个jar都可以设置作用域,默认作用域为【compile】
5.3.1初次使用,无法在Idea中直接新建servlet与jsp页面
虽然maven不需要直接放入jar包了 ,但是还是需要将jar包的坐标【相当于是加入了一个超链接】配置到工程中,用来使用。
需要在工程【pom.xml】文件中,的<dependencies>标签中进行如下配置
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- 放置项目运行所依赖jar包-->
<!-- servlet依赖jar包-->
<dependency><!-- 配置本地jar包必须要与本地(这里指本地仓库)jar包版本一致。路径一致-->
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope><!-- 设置作用域 解决jar包冲突
【因为在tomcat中已经存在servlet与jsp的jar包】 编译时起作用,运行时不起作用-->
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope><!-- 设置作用域:编译时起作用,运行时不起作用-->
</dependency>
</dependencies>
当在工程【pom.xml】文件中配置MySQL版本时,一定要与电脑安装的MySQL版本相匹配,不然会报以下几个异常【本人电脑安装MySQL版本为8.0.22】:
-
java.sql.SQLException: com.mysql.cj.jdbc.Driver
Caused by: java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
-
java.sql.SQLException: com.mysql.cj.jdbc.Driver
Caused by: java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
-
java.sql.SQLException: Null connection
配置pom.xml中MySQL实例代码如下:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
<scope>runtime</scope>
</dependency>
5.3.2 解决环境冲突问题
maven中已经集成了tomcat 6.0.29版本,但是对于我们来说获取不能使用(本人使用jdk1.8),或者与 某些东西起到了冲突,就好比如出现如下截图,这个时候,需要我们重新配置一个tomcat
其他原理相同:具体代码如下方所示:
需要在工程【pom.xml】文件中,的</plugins>标签中进行如下配置
<!-- 自定义插件-->
<!-- 自定义tomcat-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port> <!--设置tomcat端口号-->
</configuration>
</plugin>
<!-- 自定义jdk-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<target>1.8</target><!--设置jdk版本-->
<source>1.8</source><!--设置class文件对应的jdk-->
<encoding>UTF-8</encoding><!--设置 Java 编码-->
</configuration>
</plugin>
做为刚刚入门的Java初学者,还有许多理解不透彻的地方,把自己的笔记发出来也是为了与大家进行交流,同时也是为了帮助像我一样的初学者学起来不是那么难。有问题可以在下面评论。咱们共同成长~