Maven-项目管理工具

Maven的简介

一、 什么是Maven

Maven是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目。


二、Maven好处
如果普通的传统项目大小为:20M,Maven项目的大小为:700多KB。

分析:1、maven项目为什么这么小?没有jar。2、需要jar吗?肯定需要。


三、依赖管理



四、Maven的好处

1、依赖管理

 就是对jar包的统一管理  可以节省空间

2、一键构建

一个 tomcat:run就能把项目运行起来

Maven能干的事:编译测试(junit)、运行、打包、部署

3、可以跨平台

4、应用于大型项目 可以提高开发效率

分析:用户管理    订单管理   支付管理   。。。。。

Maven        分模块开发

互联网项目                     按业务分

传统项目          按层分 entity  dao  service  web


五、Maven的目录结构

src  
    main              ->    主目录
        java            ->    放的都是java代码
        resource    ->    配置文件:properties  xml
        webapp   
    test                ->    测纸目录
        java           ->    纯java代码  Junit测试
        resource    ->    Junit测试所用的配置文件,如果里面没有配置文件默认从main里找


六、Maven的常用命令

clean

清理编译的文件
compile 编译主目录的文件
test 编译并运行test目录的代码
package 打包
install 把项目发布到本地仓库
tomcat:run 一键启动

七、Maven的生命周期

Compile   test  package  install  deploy(发布到私服)

三种生命周期
    Clean生命周期
        Clean
    Default生命周期
        Compile   test  package  install  deploy
    Site生命周期
        Site


不同的生命周期的命令可以同时执行:Mvn clean package


八、依赖范围
1、Compile  struts2-core
    编译(compile)时需要 测试时需要,,运行时需要,打包时需要
2、Provided  jsp-api.jar   servlet-api.jar
    编译(compile)时需要,测试(test)时也需要 ,运行时不需要,打包时不需要
3、Runtime   数据库驱动包
    编译时不需要,测试时需要,,运行时需要,打包时需要
4、Test  junit.jar

    编译时不需要,测试时需要,运行时不需要,打包也不需要


九、依赖传递

  只添加了一个struts2-core依赖,发现项目中出现了很多jar,这种情况依赖传递。


十、依赖版本冲突的解决

1、 第一声明优先原则

<dependencies>
<!--   spring-beans-4.2.4 -->
  <dependency>
  	<groupId>org.springframework</groupId>
  	<artifactId>spring-context</artifactId>
  	<version>4.2.4.RELEASE</version>
  </dependency>
  
  
<!--   spring-beans-3.0.5 -->
  <dependency>
  	<groupId>org.apache.struts</groupId>
  	<artifactId>struts2-spring-plugin</artifactId>
  	<version>2.3.24</version>
  </dependency>

2、 路径近者优先原则

<dependency>
  	<groupId>org.springframework</groupId>
  	<artifactId>spring-beans</artifactId>
  	<version>4.2.4.RELEASE</version>
</dependency>

3、 排除原则

<dependency>
  	<groupId>org.apache.struts</groupId>
  	<artifactId>struts2-spring-plugin</artifactId>
  	<version>2.3.24</version>
  	<exclusions>
  	  <exclusion>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-beans</artifactId>
  	  </exclusion>
  	</exclusions>
</dependency>

4、 版本锁定原则

<properties>
	<spring.version>4.2.4.RELEASE</spring.version>
	<hibernate.version>5.0.7.Final</hibernate.version>
	<struts.version>2.3.24</struts.version>
</properties>

<!-- 锁定版本,struts2-2.3.24、spring4.2.4、hibernate5.0.7 -->
<dependencyManagement>
	<dependencies>
	    <dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-context</artifactId>
		<version>${spring.version}</version>
	    </dependency>
        </dependencies>
</dependencyManagement>

猜你喜欢

转载自blog.csdn.net/w_meng_h/article/details/80546059