maven的使用

maven项目:

  • 单体的java项目

  • 多模块开发

单体的java项目

编写pom.xml文件

jdk版本设置:

第一种修改方式:

第二种方式: 推荐

在pom.xml文件的properties标签中指定jdk版本: 源码jdk版本, 编译的jdk版本

   <!--可选配置-->
    <properties>
        <!--指定项目的编码-->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!--指定jdk版本-->
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

第三种方式: 使用插件

maven的指令

指令 运行插件

运行指令:

  • 如果这个指令maven定义好的, 默认插件, 只需要在idea的maven窗体,双击运行

常见指令:

  • clean: 清除, 删除target目录

target: maven插件运行生成文件保存的目录

  • compile: 编译源代码

  • test: 执行你的junit的单元测试代码, 把我们项目下所有的测试方法运行

实际中, 指定运行那个测试, 找到测试类, 运行测试方法

在实际开发中, 跳过test测试: 不运行测试方法

  • package: 打包

    maven项目打包方式:

    • jar 默认的 java项目

    • war: web项目

    • pom: 父项目,聚合项目打包方式必须是pom, 表示该项目不能写代码

  • install: 安装, 把项目打成包,安装到本地仓库

  • deploy: 发布, 把本地仓库的jar发布远程仓库(公司私服)

第二种方式:

maven的依赖坐标与传递

坐标: 本地的仓库的文件夹

jar: groupId的文件夹/artifactId/version/xxx.jar

某个模块,有相同的groupId, 但是artifactId一定不一样

依赖的坐标,不需要我们记住, 只需要查

依赖的传递

A依赖B, B依赖C:

A项目中:

  • B依赖 直接依赖

  • C依赖 间接依赖

依赖可以进行传递

依赖的范围:

使用<scope>指定依赖的范围:

  • compile:编译范围,指 A 在编译时依赖 B,此范围为默认依赖范围。编译范围的依赖会用在 编译、测试、运行,由于运行时需要所以编译范围的依赖会被打包。

  • provided:provided 依赖只有在当 JDK 或者一个容器已提供该依赖之后才使用, provided 依赖在编译和测试时需要,在运行时不需要,比如:servlet-api,jsp-api 被 tomcat 容器提供。\

  • runtime:runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如:jdbc 的驱动包。由于运行时需要所以 runtime 范围的依赖会被打包。 数据库驱动jar

  • test:test 范围依赖 在编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用, 比如:junit。由于运行时不需要所以 test范围依赖不会被打包。 scope为test的依赖不会传递

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

  • 默认引入 的 jar 包 ------- compile 【默认范围 可以不写】(编译、测试、运行 都有效 )

  • servlet-api 、jsp-api ------- provided (编译、测试 有效, 运行时无效 防止和 tomcat 下 jar 冲突)

  • jdbc 驱动 jar 包 ---- runtime (测试、运行 有效 )

  • junit ----- test (测试有效)

  • scope为test的依赖不会传递

依赖的优先级
  • 直接依赖优先级 高于间接依赖

  • 都是直接依赖, 后面覆盖前面的

依赖排除
 <dependency>
            <groupId>com.fs</groupId>
            <artifactId>demo1</artifactId>
            <version>1.0-SNAPSHOT</version>
            <!--排除依赖-->
            <exclusions>
                <!--排除具体的依赖-->
                <exclusion>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
依赖的版本控制

在依赖中的version使用版本变量

 user-common模块的结构:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值