Maven基础

1. 概述

Maven是Apache公司的开源项目,是项目构建工具。用来依赖管理。

1.1 Maven的好处

  1. 不需要再拷贝jar包。项目中不需要存放jar包。项目源代码占用空间很小
  2. 使用maven开发的工程,如果环境统一导入别的项目不会报错
  3. 代码耦合度进一步降低
  4. 方便项目进行升级
  5. 节省人力成本

1.2 Maven两大核心:

依赖管理:对jar包统一管理。
项目构建:项目在编码完成后,对项目进行编译、测试、打包、部署等一系列的操作都通过命令实现。

1.3 Maven安装、配置本地仓库

Maven程序安装前提:Maven程序是Java开发的,它运行依赖JDK

1.4 Maven项目标准目录结构

ProjectName
    src
        main
            java
            resource
            webapp/WEB-INF/web.xml
        Test
            java
            Resource
    pom.xml

1.5 Maven的常用命令

tomcat:run

通过Maven命令将Web项目发布到Tomcat中

clean:清理

将项目目录中target目录清理掉

compile:编译

将项目中.java文件编译成为.class文件

test:单元测试

将项目的根目录下src/test/java目录下的单元测试类都会执行。
单元测试类有要求:XxxTest.java

package:打包

web项目----war包
java项目----jar包
将项目打包,打包项目根目录target目录

install:安装

解决本地多个项目共用一个jar包。
打包到本地仓库

deploy:

将jar包上传到私服

1.6 Maven的生命周期

在Maven中存在“三套”生命周期,每一套生命周期相互独立,互不影响。在一套生命周期内,执行后面的命令,前面的操作会自动执行。

CleanLifeCycle:清理声明周期。
    clean
defaultLifeCycle:默认生命周期
    compile,test,package,deploy
siteLifeCycle:站点生命周期
    site

1.7 POM文件

Group Id : 公司名称

Artifact Id:项目名称

Version:版本

SNAPSHOT 测试版本
RELEASES 正式版本

packaging: 打包方式

jar--- java 项目
war ---web项目
pom ----父工程

依赖范围

依赖范围对于编译classpath有效对于测试classpath有效对于运行时classpath有效例子
compileYYYspring-core
test-Y-junit
providedYY-servlet-api
runtime-YYjdbc驱动
systemYY-本地的Maven仓库之外的类库

添加依赖范围:默认是compile
provided 运行部署到tomcat不在需要

传递依赖

A依赖于B,B依赖于C(1.1版本),B是A的直接依赖,C就是A的传递依赖。
导入依赖D,D依赖C(1.2版本)

Maven自己调节原则

  • 第一声明者有限原则
谁先定义的就用谁的传递依赖
  • 路径近者优先原则
直接依赖级别高于传递依赖

在pom文件中添加插件

jdk编译插件

<plugins>
    	<plugin>
    		<groupId>org.apache.maven.plugins</groupId>
    		<artifactId>maven-compiler-plugin</artifactId>
    		<version>3.8.0</version>
    		<configuration>
    			<source>1.7</source>
    			<target>1.7</target>
    			<encoding>UTF-8</encoding>
    		</configuration>
    	</plugin>
    </plugins>

排除依赖

<dependency>
	  <groupId>org.apache.struts</groupId>
	  <artifactId>struts2-core</artifactId>
	  <version>2.5.20</version>
	  <exclusions>
	  <!-- 将struts2-core.jar包中commons-io的传递依赖排除掉 -->
	  	<exclusion>
	  		<groupId>commons-io</groupId>
	  		<artifactId>commons-io</artifactId>
	  	</exclusion>
	  </exclusions>
    </dependency>

指定依赖版本

<!-- 版本锁定:指定项目中的依赖版本 -->
<dependencyManagement>
  	<dependencies>
  		<dependency>
  			<groupId>org.springframework</groupId>
  			<artifactId>spring-beans</artifactId>
  			<version>4.1.4.RELEASE</version>
  		</dependency>
  	</dependencies>
  </dependencyManagement>

属性

 <!-- 属性 -->
  <properties>
  	<spring.version>4.1.4.RELEASE</spring.version>
  </properties>
<dependencyManagement>
  	<dependencies>
  		<dependency>
  			<groupId>org.springframework</groupId>
  			<artifactId>spring-beans</artifactId>
  			<version>${spring.version}</version>
  		</dependency>
  	</dependencies>
  </dependencyManagement>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值