java基础-11 maven

maven基础

maven是项目构建工具,用来依赖管理

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。

Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。

  • maven的两大核心

依赖管理:对jar的管理

项目构建:对项目进行编译、测试、打包、部署一系列操作都可以通过命令来实现

 

  • maven的安装

下载地址:http://maven.apache.org/download.cgi#

 解压,注意目录中不要包含中文和空格

配置环境变量:(maven的运行需要jdk)

  • idea配置maven

 

如果要选择idea提供好的骨架需要勾选 create from archetype

idea提供好的maven java骨架 

 

 

 

注意 ! ! !

创建第一个maven项目的同学(萌新)千万千万千万不要手贱去点quickstart, 普普通通的创建就行了

(否则就会没有src的目录, 这是up主在经历的n多次的创建之后得出的结论)

  • maven配置本地仓库

apache-maven-3.6.3\conf\settings.xml

  • maven项目标准目录结构

target:存放编译之后的文件(target目录并不属于maven项目标准目录结构

 

导入maven项目

main:主要的

  1. java:存放代码
  2. resource:存放配置文件
  3. webapp:存放网页

test:单元测试

  • maven的常用命令

  • clean:清理编译后的class代码

mvn clean会删除target整个目录包括target目录本身

  • compile:编译

将项目的.java文件编译成.class文件,将编译后.class文件存放到target目录下

  • test:单元测试

单元测试类名有要求: XxxxTest.java(要求以 Test.java结尾)

项目跟目录下 src/test/java 目录下的单元测试类都会执行

  • package:打包

web project  ---war包

java project  ---jar包

  • install:安装

打包项目到本地仓库(可以在本地共享jar包)

  • maven项目的生命周期

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

  • CleanLifeCycle:清理生命周期

       clean

  • defaultLifeCycle:默认生命周期

      compile、test、package、install、deploy

  • siteLifeCycle:站点生命周期

      site

注意:在一套生命周期内,执行后面的命令前面的命令都会自动执行

 

  • eclipse中配置maven环境

  • 安装m2e插件

EMBEDDED(embedded内嵌式)内嵌版本 

  •  修改内嵌版本到自己下载的版本

  • 配置userSetting让eclipse能知道maven仓库的位置

选择 settings.xml ,eclipse会自动解析出仓库位置

  • 构建索引

  • 创建maven项目

 

  <build>
  	<plugins>
  		<!-- 设置jdk的编译版本为1.8 -->
  		<plugin>
  			<groupId>org.apache.maven.plugins</groupId>
  			<artifactId>maven-compiler-plugin</artifactId>
  			<configuration>
  				<source>1.8</source>
  				<target>1.8</target>
  				<encoding>UTF-8</encoding>
  			</configuration>
  		</plugin>
  	</plugins>
  </build>
  •  查找依赖

  • 依赖范围

  • 修改依赖范围

总结:如果使用到tomcat自带的jar包,将项目中依赖作用范围设置为:provided

  •  运行调试maven项目

  • maven概念模型

两大核心:

  1.  依赖管理:对jar包管理
  2.  项目构建:通过命令进行项目构建

  • 传递依赖冲突解决

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

  •  解决方案
  • maven自己的调解原则
  1. 第一声名者优先原则:谁先定义的就用谁的传递依赖。
  2. 路径近者优先原则:直接依赖高于传递依赖。

  • 排除依赖

  • 版本锁定(推荐使用

 

  • 通过maven整合ssh框架

  • 通过maven对项目进行拆分、聚合(重点) 

  • 创建父工程

  • 创建子工程

 

 运行的方式:

  • 私服的应用

安装私服

下载安装包

  • 仓库类型

 

上传jar包到私服

 

  • maven的好处

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Toroidals

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值