《JavaEE进阶》----2.<Spring前传:Maven项目管理工具>

本篇博客讲解我们在使用Spring框架时所要用到的Maven这个项目管理工具
它可以更方便的管理我们的项目,比如通过

1.常用的Maven命令来进行编译、测试、打包、清理包等等,不仅如此,

2.Maven还可以对依赖进行管理,方便我们添加依赖、管理依赖。让我们快速获取到我们想要的依赖,而不用自己添加依赖的jar包。

一、Maven项目管理工具

1.1什么是Maven

Maven是⼀个项目管理⼯具。基于POM(Project Object Model,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告和文档的项⽬管理工具软件。

Maven我的理解

大白话: Maven是⼀个项目管理⼯具, 通过pom.xml文件的配置获取jar包,而不用手动去添加jar包

注:maven是可以单独使用的,跟idea没关系,只是idea把maven集成进来了

1.2 为什么要学Maven

⼀句话: 简单,方便,

提高我们的开发效率,减少我们的开发Bug.Maven提供的功能非常多

Maven我们主要是了解以下两个方面:
1. 项目构建
2. 管理依赖

1.3项⽬构建

创建maven项目

如下图在构建系统中选择Maven

1.4 Maven命令

在右边我们可以找到一个有M的图标,那就是Maven。相当于Maven的管理工具。

Maven的一些命令也在里面

常用命令 

clean  清理class文件。可以把包清理掉。(通常是target目录。)

package   打包。点击之后会进行打jar包,此时idea文件目录中会出现target文件。包就在这里面。当出现BUILD SUCCESS说明打包成功。

install   编译、测试、打包,并将构建好的jar/war包安装到本地 Maven 仓库。工作中常用来发布包到本地。

deploy 编译、测试、打包,并将构建的工件部署到远程 Maven 仓库。工作中常用来发布包到远程Maven仓库。

其他命令

compile:编译项目的源代码,将.java文件编译为.class文件,在开发过程中检查代码的编译是否成功,或在构建前进行编译。

test:运行项目中的单元测试。验证代码的正确性,确保新代码没有破坏现有功能。

validate:当你刚刚创建或修改了pom.xml时,检查其配置是否有效。

site:生成项目的站点文档,包括项目的各种报告(如 Javadoc、测试报告、依赖关系等)。当你需要生成项目文档以供查看或发布时会用到

verify:执行项目的集成测试,验证项目是否已准备好进行发布。它包括编译、测试等步骤,并在这之后运行可能存在的集成测试。当你需要确保项目中的代码不仅通过了单元测试,还通过了集成测试,并符合发布标准时使用。

1.5依赖管理

上面说到,Maven是⼀个项目管理⼯具,

通过pom.xml文件的配置获取jar包,而不用手动去添加jar包
获取的jar包,其实就是依赖.
pom.xml就是maven的配置⽂件,用以描述项⽬的各种信息

如下图,在文件目录中找到pom.xml文件

依赖配置
依赖:指当前项⽬运⾏所需要的jar包.


添加依赖

如果大家了解了前端,那么相当于我们在<dependencies>标签中添加依赖的坐标。,如下。
<dependencies>
这里面放置依赖的坐标,可以为多个。
</dependencies>

通过

<dependencies>

              <dependency> 

             </dependency>

</dependencies>

进行添加依赖

示例(我们添加8.0.30版本的mysql依赖):

<dependency>

        < groupId>mysql<groupId>

        <artifactId>mysql-connector-java<artifactId>

        <version>8.0.30<version>

<dependency>

代码编写好之后,需要点击刷新按钮就可以完成添加依赖,

此时我们就可以看见旁边文件目录中多了些jar包

例如:我们添加依赖如下

<dependencies>

        <dependency> 

                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.30</version>

        </dependency>

</dependencies>

 再点击这个刷新按钮,如果没有我们点击旁边的m。

此时如上图,就出现了刷新的按钮。

第二行,第一个刷新按钮也是可以进行刷新的。

我们点击刷新之后:我们在左边外部库中观察依赖有没有进来

 

我们发现,在外部库中,除了最开始有的<1.8>

还多了两个有关于Maven的。

其中第一个是mysql的依赖。是mysql还需要依赖的别的jar包

第二个则是我们添加的

我们发现Maven依赖不仅把当前的jar包依赖进行,还把这个jar包依赖的jar包依赖进来到项目之中

Maven对我们进行的依赖管理,会把当前依赖的依赖也会引入到当前项目中。

多余的那个是因为mysql应用的那个jar包里面的东西,因此也会被依赖到项目之中。

查看依赖关系

此时 我们需要用到一个插件来进行查看依赖关系

安装Maven Helper插件        

安装插件

主菜单>设置>插件

安装完之后pom文件中会出现一个插件框

文本旁边的选项,就是进行依赖分析的。点击之后,我们就会看到依赖关系 

 

上面有多种模式来展示依赖关系

1.Conflicts冲突

2.所有依赖以列表形式显示

3.所有依赖以树的结构显示

4.显示组ID

5.显示依赖大小

依赖代码分析

<dependencies>

        <dependency> 

                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.30</version>

        </dependency>

</dependencies>

 整个描述我们称之为依赖的坐标,我们可以确定jar包固定的位置

是基于Maven仓库的坐标

Maven仓库地址:

仓库的分类:

分为

本地仓库:随着使用时间越来越长,下载jar包越来越多占用硬盘空间越来越大

远程仓库

其中

远程仓库又分为中央仓库和私有仓库

本地仓库地址:

远程仓库地址:

1.仓库地址:中央仓库地址https://repo1.maven.org/maven2/

2.查询界面地址: 查询界面https://mvnrepository.com/

这两个有可能不一致, 以仓库地址为准。查询界面会有一定的滞后性。

仓库地址在国外。

 3.国内源:将国外的仓库地址搬到国内.我们可以自己设置

4.私服:中央仓库和国内源都是公开的,所有人都可以看到,企业开发时,一些项目代码具有一定的私密性。不会公开,因此企业会建立自己的私服,访问需要账号密码。

1.6刷新依赖来源

我们自己引入依赖:

本地仓库   >   本地仓库去中央仓库拿,下载后从本地仓库拿。

本地仓库最开始的时候是空的。最终我们所使用到的代码都可以从本地仓库拿

私服:

先从本地仓库拿,若没有去私服,私服也没有去中央仓库拿。返回到私服,私服再返回到本地。

一个jar包只下载一次。本地没有则去私服拿,私服没有才会去中央仓库拿 

中央仓库也包含国内源。 

1.7设置国内源(访问会更快)

仅限于在学习阶段,公司中不用国内源,而是直接用私服。若在公司去找同事要setting文件就好了。

setting文件用来配置Maven。

因为公司可能不让用Maven的阿里云镜像地址等等。。

这样setting文件里会包含公司的私服账号地址密码等等信息

在设置中,找到构建、执行、部署。中构建工具中有Maven项。用户设置文件中有setting文件。

如下图

在其中找到用户设置文件。打开文件,里面有一个settings.xml 

如何设置国内源? 

1.修改settings.xml文件

2.如果没有settings.xml文件,则找一个。

Maven仓库默认在国外https://mvnrepository.com/,国内使⽤时会⽐较慢,我们可以更换为阿⾥云的仓库
也可以选择别的仓库,参考:Maven镜像地址⼤全


打开settings.xml,在mirrors节点上,添加内容如下:
<mirror>
        <id>aliyunmaven</id>
        <mirrorOf>central</mirrorOf>
        <name>阿⾥云公共仓库</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

settting文件在我的桌面中的Maven配置文件中哦

注意:所设置的目录,如项目路径,等不要有中文路径!!!!

目录如果包含中文,如何修改?

1.创建你期望放的目录

2.进入当前Maven配置目录到.m2

3.复制.m2中的文件到你创建的目录

4.修改idea配置

  • 修改Maven仓库目录

修改用户设置文件目录和本地仓库目录。并且打上两个重写的√

注意分别指定settings.xml文件和repository

  • 新项目设置

选择文件->新建项目设置->新项目的设置->构建、执行、部署->构建工具->Maven

再把相应目录重写改一下。

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
我用Spring5的aop应用时报这个错误Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from file [D:\ecliple\web5\WEB-INF\applicationContext.xml]; nested exception is java.nio.file.NoSuchFileException: WEB-INF\applicationContext.xml,他说我的applicationContext.xml文件不存在,可是我明明有这个文件,另外我的web.xml需要更改吗<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <context-param> <param-name>contextConfigLocation </param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <display-name>Struts2</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> <!--2.5版本的写法 --> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter> <filter-name>OpenSessionInViewFilter</filter-name> <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>OpenSessionInViewFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/* </url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app>
05-30
这个错误提示说找不到你的 applicationContext.xml 文件,可能是文件路径设置有误或者是文件名写错了。你需要检查一下 applicationContext.xml 文件是否存在于 WEB-INF 目录下,并且在 contextConfigLocation 配置中的路径是否正确。 同时,你的 web.xml 文件中的 contextConfigLocation 配置也需要修改一下,将参数值改为 /WEB-INF/applicationContext.xml (去掉后面的空格),这样才能正确加载 applicationContext.xml 文件。 修改后的 web.xml 文件应该如下所示: ``` <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <display-name>Struts2</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> <!--2.5版本的写法 --> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter> <filter-name>OpenSessionInViewFilter</filter-name> <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>OpenSessionInViewFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

祁思妙想

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值