Maven基础

maven

坐标

Maven坐标是什么

坐标用于描述仓库中资源的位置。

  • Maven 坐标的组成
    groupld:定义当前Maven项目隶属的组织名(通常是域名反写)
    artifactld:定义当前Maven项目的名称(通常是模块名称)
    version:定义当前项目版本号
    packaging:定义该项目的打包方式

  • Maven坐标的作用
    使用唯一的标识,唯一性定位资源位置,通过该标识可以将资源的下载与识别交由机器完成。

总结: 坐标的作用主要就是将 资源的下载简化了,交由机器完成,减少工作量,便于管理。

仓库

用于存放jar包以及资源

仓库的分类

  • 本地仓库:自己电脑上存储资源的仓库
  • 远程仓库: 非自己电脑上的仓库,用于存储资源,为本地仓库提供资源。
    • 中央仓库:由Maven组织维护,资源全面,当时地址在国外下载缓慢。
    • 私服: 个人组织范围内存放资源的仓库

私服的作用: 私服的速度快,范围共享不对外公开,存放具有版权的资源

依赖管理

依赖

  • 直接依赖
  • 间接依赖

直接依赖和间接依赖不是绝对的,取决于参照对象。

依赖传递
在配置依赖是,所配置依赖的依赖同样会生效。
依赖传递的问题
由于配置依赖时其他依赖同样会生效所以就会产生矛盾,当出现矛盾时有三种优先级。

  • 路径优先:层级越低的优先级越高
  • 声明优先:当资源在同级中被依赖时先配置的生效
  • 特殊邮箱:在同一层级配置了不同资源的版本,后配置的生效。

特殊优先对应的是在同一层级(同一pom.xml文件中配置多个不同版本资源)这种情况,后配置的生效。

声明优先则是多个属于相同层级(非同一pom.xml文件)的依赖由上一层级的配置先后顺序决定。

可选依赖

将使用的依赖资源对外不公开,设为不透明。

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
      <optional>false</optional>
</dependency>

通过关键字 设置当前的依赖是否透明,不能进行传递。

排除依赖

排除依赖先比于可选依赖的不同在于,排除依赖是主动的,当依赖中出现了不需要的依赖时可以通过排除以来的方法,将该依赖删除。

      <groupId>org.example</groupId>
      <artifactId>maven01</artifactId>
      <version>1.0-SNAPSHOT</version>
      <exclusions>
        <exclusion>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

通过关键字可以删除配置依赖中不需要的依赖。

依赖范围

  • 主程序范围有效(mian文件夹范围)
  • 测试程序范围有效(test文件夹范围)
  • 是否参与打包(package指令范围之内)
scop主代码测试代码打包示例
compile(默认)YYYlog4j
testYjunit
providedYYservlet-api
runtimeYjdbc

生命周期以及插件

**生命周期:**在Maven运行时的阶段,每个阶段对应着默认的插件。

**插件:**通过插件来实现每个生命周期的要求。

  • 通过插件的绑定,可以在执行到对应生命周期时进行操作,可添加插件。
  • 默认Mavne在每个生命周期上都绑定的有预设功能

模板:

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-source-plugin</artifactId>
      <version>2.2.1</version>
			<!--操作执行-->
        <executions>
            <!--执行位置-->
          <execution>
			<!--执行操作-->
            <goals>
              <goal>jar</goal>
            </goals>
			<!--执行阶段-->
            <phase>generate-resources</phase>
          </execution>
        </executions>
      </plugin>

注意事项

Test后没有测试报告生成

在Test的过程中,可能会出现没有测试报告,以及在测试过程中成功,当时不显示测试信息的情况,这种情况出现的原因是因为 Test 的命名出现了问题。Maven 测试不会进行JUnit4的测试,Test 类 必须是以 Test打头或者以Test结尾。

servlet-api 不能打包

将servlet打包后可能会与服务器的servlet产生版本冲度导致错误.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值