目录
Maven使用
1 网上依赖jar网址 http://www.mvnrepository.com/
2 依赖传递
3 依赖冲突的解决
4 依赖排除
6 继承和聚合
7 maven私服
8 把第三方jar包放入本地仓库或私服
9 常用命令
10 手打不容易,感觉好就赞一毛钱地
Maven使用
1 网上依赖jar网址 http://www.mvnrepository.com/
2 依赖传递
项目依赖----->spring-webmv.jar依赖----->spring-beans.jar等等 所以spring-beans.jar 我们就拥有了
3 依赖冲突的解决
spring-webmvc依赖spirng-beans-4.2.4,spring-context依赖spring-beans-5.0.2,但是发现spirng-beans-4.2.4加入到工程中
- ü1、第一声明者优先原则(谁在上面用谁的依赖)
在pom文件定义依赖,先声明的依赖为准。
测试:
如果将上边spring-webmvc和spring-context顺序颠倒,系统将导入spring-beans-5.0.2。
分析:
由于spring-webmvc在前边以spring-webmvc依赖的spring-beans-5.0.2为准,所以最终spring-beans-5.0.2添加到了工程中。
- ü2、路径近者优先原则(以自己的为准)
例如:还是上述情况,spring-contex和spring-webmvc都会传递过来 spirng-beans,那如果直接把spring-beans的依赖直接写到pom文件中,那么项目就不会再使用其他依赖传递来的spring-beans,因为自己直接在pom中定义spring-beans要比其他依赖传递过来的路径要近。
在本工程中的pom中加入spirng-beans-5.0.2的依赖,根据路径近者优先原则,系统将导入
spirng-beans-5.0.2:
4 依赖排除
<exclusions>
<exclusion>
<groupId>com.cc.maven</groupId>
<artifactId>project-c</artifactId>
</exclusion>
</exclusions>
5 版本控制
<properties>
<mybatis.version>3.4.5</mybatis.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
</dependencyManagement>
锁定版本并没有添加依赖,要想添加依赖还要用 <dependencies> 添加依赖,主要用于控制子模块的版本
mvn dependency:list
mvn dependency:tree可以帮助我们详细了解项目中所有的依赖的具体详细,在此基础上,还有
mvn dependency:analyze工具可以帮助分析当前项目的依赖
6 继承和聚合
n何为继承?
继承是为了消除重复,如果将dao、service、web分开创建独立的工程则每个工程的pom.xml文件中的内容存在重复,比如:设置编译版本、锁定spring的版本的等,可以将这些重复的配置提取出来在父工程的pom.xml中定义。
n何为聚合?
项目开发通常是分组分模块开发,每个模块开发完成要运行整个工程需要将每个模块聚合在一起运行,比如:dao、service、web三个工程最终会打一个独立的war运行。
7 maven私服
载nexus
Nexus 是Maven仓库管理器,通过nexus可以搭建maven仓库,同时nexus还提供强大的仓库管理功能,构件搜索功能等。
下载Nexus, 下载地址:http://www.sonatype.org/nexus/archived/
解压nexus-2.12.0-01-bundle.zip,本教程将它解压在F盘,进入bin目录:
8 把第三方jar包放入本地仓库或私服
1.导入本地库
随便找一个jar包测试,可以先CMD进入到jar包所在位置,运行
mvn install:install-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.1.37 -Dfile= fastjson-1.1.37.jar -Dpackaging=jar
2 导入私服....
9 常用命令
- mvn compile 是 maven 工程的编译命令,作用是将 src/main/java 下的文件编译为 class 文件输出到 target 目录下。
- mvn test 执行 src/test/java 下单元测试类,下图为测试结果,运行 1 个测试用例,全部成功。
- clean 是 maven 工程的清理命令,执行 clean 会删除 target 目录及内容。
- package 是 maven 工程的打包命令,对于 java 工程执行 package 打成 jar 包,对于 web 工程打成 war 包。
- install 是 maven 工程的安装命令,执行 install 将 maven 打成 jar 包或 war 包发布到本地仓库。