教育后台管理系统:Maven的常用命令 & 依赖范围

Maven的常用命令

1. 一个maven项目生命周期

  使用 maven 完成项目的构建,项目构建包括:清理、编译、测试、部署等过程,maven 将这些 过程规范为一个生命周期,如下所示是生命周期的各阶段:

  maven 通过执行一些简单命令,即可实现上边生命周期的各个过程

命令 说明
mvn compile 完成编译操作 , 执行完毕后,会生成target目录,该目录中存放了编译后的字节码文件
mvn clean 执行完毕后,会将target目录删除
mvn test

执行完毕后,会在target目录中生成三个文件夹:

surefire、surefire-reports(测试报告)、test-classes(测试的字节码文件)

mvn package 完成打包操作, 执行完毕后,会在target目录中生成一个文件,该文件可能是 jar、war
mvn instal

执行 mvn install命令,完成将打好的jar包安装到本地仓库的操作 ,

 执行完毕后,会在本地仓库中出现安装后的jar包,方便其他工程引用

 

 

2.  idea中安装好maven后, 在界面左侧有一个maven视图, 里面有对应的命令插件,可以执行上面表格中的命令

  

3. 工具栏介绍

  1.根据pom.xml文件重新导入所有Maven项目和依赖,刷新
  2.创建源码(重新编译)并更新目录
  3.下载源码或文档
  4.添加Maven项目
  5.执行生命周期中的阶段,选中lifecycle选项中生命周期中的一个阶段(phase),才能点击执行。
  6.运行Maven生命周期或插件
  7.切换离线模式,就是关闭和远程仓库的链接,从本地仓库中获取,也不能将jar包提交到远程仓库
  8.是否跳过测试,点击选中就可以跳过测试,在点击选择取消跳过测试
  9.展示当前选中的maven项目jar包的依赖,并且可以直接在图形化依赖图上进行排除依赖操作
  10.收起下面展开的视图
  11.跳转到maven的Setting页面

依赖范围介绍

1.     A 依赖 B,需要在 A 的 pom.xml 文件中添加 B 的坐标,添加坐标时需要指定依赖范围,依赖范围包括:

依赖范围说明
compile

编译范围,指 A在编译时依赖 B,此范围为默认依赖范围。

编译范围的依赖会用在 编译、测试、运行,由于运行时需要所以编译范围的依赖会被打包。

provided

provided 依赖只有在当 JDK 或者一个容器已提供该依赖之后才使用,

provided 依 赖在编译和测试时需要,在运行时不需要,

比如:servlet api 被 tomcat 容器提供。

runtime

runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。

比如:jdbc 的驱动包。由于运行时需要所以 runtime 范围的依赖会被打包。

test

test 范围依赖 在编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用,

比如:junit。由于运行时不需要所以test范围依赖不会被打包。

system

system 范围依赖与 provided 类似,

但是你必须显式的提供一个对于本地系统中 JAR 文件的路径,需要指定 systemPath 磁盘路径,system依赖不推荐使用。

 

2.   项目中添加的坐标 ,并指定依赖范围

<dependencies>
        <dependency>
            <!-- 项目名称 -->
            <groupId>javax.servlet</groupId>
            <!-- 模块名称 -->
            <artifactId>servlet-api</artifactId>
            <!-- 版本信息 -->
            <version>3.1.0</version>
        <!-- 依赖范围, 指定依赖范围是编译与测试时有效,运行时无效,运行时使用tomcat中的依赖,避免冲突 -->
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1.2</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>

            <!-- 在测试时有效 -->
            <scope>test</scope>
        </dependency>
    </dependencies>
原文地址:https://www.cnblogs.com/JasperZhao/p/15448984.html