Maven学习总结

  • 一、Maven常用的命令
  1. mvn  clean  清理
  2. mvn  compile 编译
  3. mvn test 测试
  4. mvn package 打包
  5. mvn install 安装(将项目安装本地仓库)
  6. mvn deploy 发布(发布到服务器--私服、中央仓库(maven提供))
  • 二、添加依赖获取坐标的方法
  1. .在联网个情况下通过http:www.mvnrepository.com来获取坐标
  2. 不联网的情况下通过开发工具MyEclipse--->Maven --->add dependency输入关键字例如struts2来获取,如果没有切换到Maven Repositores ---> local reponsitory ---> rebuild index 。(同时我们可以到Preference  ---> Maven ----> 勾选上Download reponsites index on starup 来更新本地库但此操作可能会导致下载很多文件慎用)
  • 三、依赖配置
  1. groupId、artifactId、version是依赖的基本坐标,缺一不可。
  • type:依赖的类型,
  1. 对应坐标packaging,默认为jar
  2. <type>pom.lastUpdated</type>  表示使用最后更新,将不使用jar包,目前没用。
  1. optional:标记依赖是否可选。默认值false
    1. A->B->C,那么当A依赖于C时就可以设为可选。
  2. exclusions:排除传递依赖,解决jar冲突问题。
    1. 例如:spring bean 和 struts2 spring plugin
  3. scope:依赖范围
    1. compile:编译范围,默认scope,在classpath中存在
    2. provided:已提供范围,比如容器提供Servlet API
    3. runtime:运行时范围,编译不需要,接口与实现分离
    4. test:测试范围,单元测试环境需要
  4. system:系统范围,自定义构件,指定systemPath
  • 四、依赖传递(依赖jar包冲突的排除)

打开pom.xml文件点击下面的Dependency Hierarchy选项选中冲突的其中一个版本的jar 右键 ---> Exclude Maven Artifact...然后再到pom.xml选项中将误选的另一个jar包的配置代码片段:

<exclusions>

          <!-- 排除 struts spring 插件 使用 spring core -->

          <exclusion>

             <artifactId>spring-core</artifactId>

             <groupId>org.springframework</groupId>

          </exclusion>

      </exclusions>

删除掉即可。例如:spring beans 依赖 spring core使用 3.2.0 版本 而struts spring插件 依赖 spring core 使用 3.0.5 版本 默认情况配置在上面优先,开发中需要通过排除依赖,确定使用版本。

<dependencies>
  	<!-- 使用 struts插件 -->
  	<dependency>
  		<groupId>org.apache.struts</groupId>
  		<artifactId>struts2-spring-plugin</artifactId>
  		<version>2.3.15.3</version>
  		<exclusions>
  			<!-- 排除 struts spring 插件 使用 spring core -->
  			<exclusion>
  				<artifactId>spring-core</artifactId>
  				<groupId>org.springframework</groupId>
  			</exclusion>
  		</exclusions>
  	</dependency>
  	<!-- 使用 spring bean -->
  	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-beans</artifactId>
  		<version>3.2.0.RELEASE</version>
//此处要删除的的误排除依赖的代码片段。很多情况下都会出现该种情况要注意!
<!-- 

                <exclusions>
  			<!-- 排除 struts spring 插件 使用 spring core -->
  			<exclusion>
  				<artifactId>spring-core</artifactId>
  				<groupId>org.springframework</groupId>
  			</exclusion>
  		</exclusions>
-->
  	</dependency>
  </dependencies>
  •  五、依赖范围(scope)

    1.Maven项目在编译、运行和测试使用了三种不同的classpath

    2.scope 用于确定maven执行 classpath 使用哪些 jar包

1 compile 编译、测试、运行 当前依赖jar都使用。默认值,一般适用于大部分情况。

2 test:测试时使用。例如:Junit

3 provided:编译、测试,注意:运行时没有。例如:servlet-api、jsp-api

       servlet源码: 编写时,MyEclipse提供jar包

     注意:使用Maven开发时是没有使用MyEclipse提供的servlet-api.jar 和 jsp-api.jar的所以必须要添加该两个jar包的依赖坐标并且scope的值一定为provided 因为运行的时候tomcat提供了该两个jar包没有设置<scope>provide</scope>的话会引起冲突。

4 runtime 测试和运行时使用,编译不使用。适合接口开发。例如:JDBC驱动。

5 system 从本地操作系统获得指定jar包,不依赖maven环境。不建议使用,不稳定。

  • 六、依赖调节

    第一原则:路径近者优先原则

    第二原则:第一声明者优先原则当路径相等时,则由POM声明的依赖顺序决定

 

 

  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值