Spring入门(四):使用Maven管理Spring项目

1. 为什么要使用Maven?

之前我们新建的项目,项目所要依赖的第三方jar包都在项目的类路径下(通常为lib目录),如下所示:

Spring入门(四):使用Maven管理Spring项目_第1张图片

使用这种方式,我们无法知道第三方类库的依赖关系,比如导入一个特定的jar包时,可能此jar包还依赖于其他的jar包,其他的jar包又依赖于更多的jar包,这也是我们平常遇到的ClassNotFound异常的主要原因。

为了解决这个问题,我们急需引入一个项目构建工具。目前主流的项目构建工具有:Maven、Gradle等。

这里我们选择Maven作为项目构建工具。

2. Maven简介

Apache Maven是一个软件项目管理工具。

基于项目对象模型(Project Object Model,POM)的概念,Maven可用来管理项目的依赖、编译、文档等信息。

使用Maven管理项目时,项目依赖的jar包将不再包含在项目内,默认情况下集中放置在用户目录下的.m2文件夹下,不过这个路径可以自定义成自己喜欢的目录。

Spring入门(四):使用Maven管理Spring项目_第2张图片

3. Maven安装

3.1 下载Maven

下载地址:http://maven.apache.org/。

Spring入门(四):使用Maven管理Spring项目_第3张图片

Spring入门(四):使用Maven管理Spring项目_第4张图片

3.2 安装Maven

将下载好的apache-maven-3.6.0-bin.zip解压到自己喜欢的目录,我这边解压的目录为:E:\Program Files\apache-maven-3.6.0。

3.3 配置环境变量

环境变量弹窗打开方式:计算机--属性--高级系统设置--“高级”选项卡--环境变量。

1)新建系统环境变量MAVEN_HOME,值为:E:\Program Files\apache-maven-3.6.0(步骤2中解压的目录)

2)编辑系统变量Path,在最后增加:;%MAVEN_HOME%\bin

Spring入门(四):使用Maven管理Spring项目_第5张图片

Spring入门(四):使用Maven管理Spring项目_第6张图片

Spring入门(四):使用Maven管理Spring项目_第7张图片

3.4 验证配置是否成功

打开cmd窗口,执行命令:mvn -version,如果能够正确的提示如下的版本信息,说明Maven配置成功。

Spring入门(四):使用Maven管理Spring项目_第8张图片

3.5 修改Maven配置文件

打开maven下conf文件夹下的settings.xml文件,找到localRepository节点,配置本地Repository路径,我这里配置的是:E:\Java\MavenRepository。

E:/Java/MavenRepository

Spring入门(四):使用Maven管理Spring项目_第9张图片

注意:文件中的路径和Windows下的路径不一样,拷贝过来后要将\替换为/,而且不能包含中文。

3.6 IDEA 配置Maven

打开IDEA后,依次打开File--Settings,然后按照如下图所示配置Maven:

Spring入门(四):使用Maven管理Spring项目_第10张图片

注意:该设置仅针对当前项目。

4. Maven的pom文件

因为Maven是基于项目对象模型(Project Object Model,POM)的概念运作的,所以Maven的项目都有一个pom.xml文件用来管理项目的依赖以及项目的编译等功能。

4.1 dependencies元素


此元素包含项目需要依赖使用的多个

4.2 dependency元素

内部通过groupId、artifactId、version确定唯一的依赖,可以称这3个为坐标。

groupId:组织的唯一标识。

artifactId:项目的唯一标识。

version:项目的版本。


    junit
    junit
    4.12

4.3 properties元素

可以定义变量在dependency中引用,代码如下所示:


    1.8
    4.3.18.RELEASE



    org.springframework
    spring-context
    ${spring-framework.version}

4.4 编译插件

Maven提供了编译插件,可在编译插件中设置Java的编译级别,代码如下:


    
        
            org.apache.maven.plugins
            maven-compiler-plugin
            3.8.0
            
                ${java.version}
                ${java.version}
            
        
    

4.5 Maven运作方式

Maven会自动根据dependency中的依赖配置,直接通过互联网在Maven中心库(https://mvnrepository.com/)下载相关依赖包到本地Maven库,本地Maven库默认是用户目录的.m2目录,但上面我们已经把本地Maven库修改为了:E:\Java\MavenRepository。

如果你不知道你所依赖的jar包的dependency怎么写的话,可以到https://mvnrepository.com/网站检索。

5. 使用Maven管理Spring项目

5.1 项目添加Maven依赖

在IDEA中,选中项目根目录,依次点击右键-->Add Framework Support,然后在弹出的界面中选中Maven:

Spring入门(四):使用Maven管理Spring项目_第11张图片

Spring入门(四):使用Maven管理Spring项目_第12张图片

此时项目目录下,会生成一个pom.xml文件,原始内容如下:



    4.0.0

    groupId
    spring-action
    1.0-SNAPSHOT

    

这里,我将groupId的值修改成自己域名:com.zwwhnly。

com.zwwhnly
spring-action
1.0-SNAPSHOT

5.2 配置文件迁移

将之前的spring-config.xml配置文件迁移至src/main/resources目录下。

5.3 pom文件添加jar包依赖

打开File-->Project Structure-->Modules,将之前方式引入的第三方jar包删除:

Spring入门(四):使用Maven管理Spring项目_第13张图片

然后通过pom文件添加jar包依赖:


    
        org.hamcrest
        hamcrest-core
        2.1
    
    
        junit
        junit
        4.12
    
    
        javax.inject
        javax.inject
        1
    
    
        com.github.stefanbirkner
        system-rules
        1.16.0
    

修改完pom文件记得点击“Import Changes”:

导入完成后的项目结构图为:

Spring入门(四):使用Maven管理Spring项目_第14张图片

可以看出和之前的区别,现在的jar包都由Maven来管理,也可以查看项目的依赖树:

Spring入门(四):使用Maven管理Spring项目_第15张图片

5.4 最终的pom文件



    4.0.0

    com.zwwhnly
    spring-action
    1.0-SNAPSHOT

    
        1.8
        4.3.18.RELEASE
    

    
        
            org.springframework
            spring-context
            ${spring-framework.version}
        
        
            org.hamcrest
            hamcrest-core
            2.1
        
        
            junit
            junit
            4.12
        
        
            javax.inject
            javax.inject
            1
        
        
            com.github.stefanbirkner
            system-rules
            1.16.0
        
    

    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.8.0
                
                    ${java.version}
                    ${java.version}
                
            
        
    

上面讲解的方式适用于新建项目时不是Maven项目,后续转为Maven项目的操作步骤。

其实,我们可以通过IDEA,直接新建Maven项目,然后修改pom文件为以上内容引入Spring等依赖(推荐该方式):

Spring入门(四):使用Maven管理Spring项目_第16张图片

Spring入门(四):使用Maven管理Spring项目_第17张图片

Spring入门(四):使用Maven管理Spring项目_第18张图片

6. 源码及参考

源码地址:https://github.com/zwwhnly/spring-action.git,欢迎下载。

使用IntelliJ IDEA 配置Maven(入门)

[Java] Maven 安装和配置

用IDEA将普通Web项目转Maven项目

汪云飞《Java EE开发的颠覆者:Spring Boot实战》

最后,欢迎关注我的微信公众号:「申城异乡人」,所有博客会同步更新。

你可能感兴趣的:(Spring入门(四):使用Maven管理Spring项目)