Maven知识

1、依赖的生命周期

compile适用于所有阶段
provided适用于测试运行、编译阶段
runtime只在运行时使用
test只在测试时使用

2、依赖的传递性

当存在间接依赖的情况时,主工程对间接依赖的jar可以访问吗?这要看间接依赖的jar包引入时的依赖范围——只有依赖范围为compile时可以访问

3、依赖的原则:解决jar包冲突

(1)最短路径优先

(2)先声明优先(pop.xml那里写前面:dependency标签配置的先后顺序)

4、依赖排除(多,但少用)

<dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>5.1.0</version>

            <exclusions>
                <exclusion>
                    <!--组织名称-->
                    <groupId>org.slf4j</groupId>
                    <!--项目名称-->
                    <artifactId>slf4j-api</artifactId>
                </exclusion>
            </exclusions>

        </dependency>

5、版本锁定

(1)使用 <dependencyManagement> 元素

<dependencyManagement> 
    <dependencies> 
        <dependency> 
            <groupId>org.springframework</groupId> 
            <artifactId>spring-core</artifactId> 
            <version>5.0.5.RELEASE</version> 
        </dependency> 
    </dependencies> 
</dependencyManagement> 

(2)使用 <properties> 元素

声明版本:

<properties> 
    <spring.version>5.0.5.RELEASE</spring.version> 
</properties> 

通过el表达式获取

<dependencies> 
    <dependency> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-core</artifactId> 
        <version>${spring.version}</version> 
    </dependency> 
</dependencies>

注意点 :在父工程中锁定版本号后 子工程不需要再声明版本号

6、打包方式

pomParent,它不直接产生一个可执行的jar文件,而是作为其他项目的父项目来提供配置和依赖管理。
jar生成一个可执行的jar文件
war用于生成web应用程序的打包方式,常用于Java Web开发
ear用于生成企业应用程序的打包方式,可以包含多个jar文件和相关的配置文件

7、maven项目聚合与拆分

(1)创建聚合工程

        1)创建父工程

修改其pop文件

自动

        2)创建子工程01

自动 

 就可以调用父类pom的junit方法了

(2)拆分工程(子模块相互调用)

       1)创建子工程02,里面有一个Student类

安装到本地仓库

子工程01添加02的依赖

注意点:子模块需要相互调用 A必须先安装在本地仓库中,A 在添加依赖后才能进行调用

8、右键手动设置资源目录

9、maven查找依赖顺序

Maven在需要依赖时会按照本地仓库、私服仓库、中央仓库以及其他远程仓库(包括镜像仓库和自定义仓库)的顺序进行查找

 10、基本Maven配置

    <dependencies>
        <dependency>
            <groupId>commons-dbutils</groupId>
            <artifactId>commons-dbutils</artifactId>
            <version>1.7</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.8</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.0.33</version>
        </dependency>

    </dependencies>

11、Serializable

一个类只有实现了Serializable接口,它的对象才是可序列化的

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值