maven 笔记

maven 笔记

maven简介

Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)

POM (Project Object Model):项目对象模型
在这里插入图片描述

maven作用

项目构建:提供标准的、跨平台的自动化项目构建方式

依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题

统一开发结构:提供标准的、统一的项目结构

依赖配置详情

<!--指定pom版本模型-->
  <modelVersion>4.0.0</modelVersion>
<!--  打包方式,web工程为war包,java为jar包-->
  <packaging>war</packaging>

  <name>web01</name>
<!--组织ID-->
  <groupId>com.LF</groupId>
<!--  项目ID-->
  <artifactId>web01</artifactId>
<!--版本号,release为正式版,snapshot为测试版-->
  <version>1.0-SNAPSHOT</version>


<!--依赖-->
  <dependencies>
<!--    具体的依赖-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
<!--     对其的应用透明不知道引用了该依赖-->
      <optional>true</optional>
    </dependency>
  </dependencies>
  <!--  构建-->
  <build>
    <!--  添加插件-->
    <plugins>
      <!--    具体的插件配置-->
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <port>8080</port>
          <path>/</path>
        </configuration>
      </plugin>
    </plugins>
  </build>

依赖的传递性

依赖具有传递性:
1.直接依赖:在当前项目中通过依赖配置建立的依赖关系
2.间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源

在这里插入图片描述

依赖传递的冲突问题(优先级)

路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高

声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的

特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的

在这里插入图片描述

依赖管理

可选依赖

可选依赖指对外隐藏当前所依赖的资源――不透明

<dependency>
	<groupId>junit</groupid>
	<artifactrd>junit</ artifactId><version>4.12</version>
    <!-- 表明对下一级透明-->
	<optional>true</optional>
</ dependency>
排除依赖

排除依赖指主动断开依赖的资源,被排除的资源无需指定版本—―不需要

<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</ artifactrd>
    <version>4.12</version>
       <!-- 表明对下一级排除-->
	<exclusions>
		<exclusion>
			<groupId>org. hamcrest</groupid>
			<artifactId>hamcrest-core</artifactId>
            </exelusion>
	</exclusions>
</dependency>

生命周期

default构建生命周期

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6rmKw4iY-1657447976772)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220710115837117.png)]

生命周期相关插件

插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功能

默认maven在各个生命周期上绑定有预设的功能

通过插件可以自定义其他功能

<build>
	<plugins>
		<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-test-resources</phase>
                </execution>
			</executions>
        </plugin>
	</plugins>
</build>
generate-test-resources ```
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L F 程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值