• 教育后台管理系统: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>
  • 相关阅读:
    Java 在方法和作用域内的内部类
    java 内部类和向上转型
    java 内部类使用 .this 和 .new
    java innerclasses(内部类)
    Java过滤器与SpringMVC拦截器之间的关系与区别
    Maven异常:Could not find artifact
    soapUI测试webservice(参数为xml格式的处理方式)
    maven仓库加载本地包依赖
    spring data jpa的学习总结
    Java 中常用缓存Cache机制的实现
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/15448984.html
Copyright © 2020-2023  润新知