项目开发之Maven

项目开发之Maven

maven的作用:

  • 不用手动去添加下载项目所依赖jar包,只需要通过maven进行配置,在pom.xml文件中配置所以依赖的包即可,降低了开发难度。
  • 导入过程:先从本地仓库找(可设置仓库位置),找不到后在向中央仓库找(可定义镜像仓库以提高访问速度)

jar包的定位

<dependency>
	<groupId></groupId>    <!-- 公司网站反写+ 项目名-->
      <artifactId></artifactId>	<!-- 项目名 -->
      <version></version>      <!-- 版本 -->
</dependency>

maven常用命令
在这里插入图片描述
传递依赖
定义:A依赖B、B依赖C,则A同样依赖于B,在A的pom.xml文件中配置B,会将C的jar包一起导入(可用<exclusions><exclusion>标签排除)

依赖冲突依赖冲突介绍
a、短路优先:B依赖于C,A依赖于B,A会自动导入他所最近依赖(B)的jar包,不会导入C的。
b、先声明优先:A依赖于B,C,若B被依赖顺序在C之前,则导入B的包。
c、使用mvn dependency:tree查找依赖冲突位置,解决不了使用<exclusion>标签
1.标签的插入

<build>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>   
     		<artifactId>maven-source-plugin</artifactId>	<!-- 生成source.jar包 -->
      		<version>2.4</version> 
      		<executions>
      			<execution>
      				<phase>package</phase>  <!--  运行阶段 -->
      				<goals>
      					<goal>jar-no-fork</goal>  <!-- 运行目标 -->
      				</goals>
      			</execution>
      		</executions>
		<plugin>
	<plugins/>
<build/>

依赖冲突解决方案:

  • 在项目设计时统一管理好依赖版本(建立父pom.xml统一配置)
<!-- 父pom -->
<properties>
      <httpclient.version>4.5.1</httpclient.version>  <!-- 统一好版本 -->
</properties>
<dependencyManagement>  <!--依赖管理-->
  <dependencies>
    <dependency>
      <groupId> org.apache.httpcomponents </groupId>
      <artifactId> httpclient </artifactId>
      <version> ${httpclient.version} </version>
    </dependency>
  </dependencies>
</dependencyManagement>
...
<!--  其他jar包管理 -->
<dependencies>
 <dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId> httpclient </artifactId>
  </dependency>
</dependencies>
  • 出现冲突了使用mvn dependency:tree查找依赖冲突位置,导入符合的版本,解决不了使用<exclusion>标签(该标签是切断传递依赖A-B-C,使A不依赖于C,依赖于符合项目的C版本)
  • 理解图:
    A->B->C(1.1)
    D->C(1.2)
    出现版本冲突(短路优先会导入1.2),切断C使得A依赖于1.2版本的

完整的项目构建过程
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值