maven

介绍

maven是一个项目管理工具。

  • 自动引入管理jar包,解决版本冲突
  • 项目生命周期:清理、编译、测试、报告、打包、部署

安装和配置

官网下载、解压、安装

需要依赖Java环境

MAVEN_HOME:值为maven的安装路径
在Path中添加:%MAVEN_HOME%in
版本测试:

mvn -v

仓库

本地仓库:用来存储从远程仓库或中央仓库下载的插件和jar包。
远程仓库:属于公共资源,存储大量的插件和jar包,供本地仓库进行下载
中央仓库:特殊的远程仓库,为maven官方所有,资源最全面。

配置本地仓库
1)创建一个文件夹,localRepository
2)修改confsetting.xml文件中内容

<localRepository>D:/repository</localRepository>

配置国内镜像仓库
在settings.xml下的mirrors节点中配置

<mirror>
	<id>alimaven</id>
	<name>aliyun maven</name>
	<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
	<mirrorOf>central</mirrorOf> 
</mirror>
  • id:唯一标识一个镜像
  • name:镜像名称
  • url:镜像地址
  • mirrorOf:代表一个镜像的替代位置,例如central就表示代替官方的中央仓库```

全局配置与个性配置
直接在安装目录下的settings.xml配置属于全局配置
在c目录个人用户下的settings.xml配置属于个性配置

maven工程

目录结构

  • .settings:工具生成的文件
  • src/main/java —— 存放项目的.java文件
  • src/main/resources —— 存放项目资源文件,如spring, hibernate配置文件
  • src/main/webapp —— 存放项目的web资源,如jsp,web-info等
  • src/test/java —— 存放所有单元测试.java文件,如JUnit测试类
  • src/test/resources —— 测试资源文件
  • target —— 项目输出位置,编译后的class文件会输出到此目录
  • pom.xml——maven项目核心配置文件

命令

  • compile:将src/main/java下的文件编译为class文件输出到target目录下。
  • test:会执行src/test/java下的单元测试类
  • clean:会删除target目录及内容。
  • package:对于java工程执行package打成jar包,对于web工程打成war包。
  • install:执行install将maven打成jar包或war包发布到本地仓库。

生命周期
maven对项目构建过程分为三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是:

  • Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
  • Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
  • Site Lifecycle 生成项目报告,站点,发布站点。

概念
Maven包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

坐标定义

在pom.xml中定义坐标,内容包括:groupId、artifactId、version,详细内容如下:

<!--项目名称,定义为组织名+项目名,类似包名-->
<groupId>cn.itcast.maven</groupId>
<!-- 模块名称 -->
<artifactId>maven-first</artifactId>
<!-- 当前项目版本号,snapshot为快照版本即非正式版本,release为正式发布版本 -->
<version>0.0.1-SNAPSHOT</version>
<packaging > :打包类型
jar:执行package会打成jar包
war:执行package会打成war包
pom :用于maven工程的继承,通常父工程设置为pom

pom基本配置

<project > :文件的根节点 . 
<modelversion > : pom.xml使用的对象模型版本 
<groupId > :项目名称,一般写项目的域名 
<artifactId > :模块名称,子项目名或模块名称 
<version > :产品的版本号 .
<packaging > :打包类型,一般有jar、war、pom 等
<name > :项目的显示名,常用于 Maven 生成的文档。
<description > :项目描述,常用于 Maven 生成的文档
<dependencies> :项目依赖构件配置,配置项目依赖构件的坐标
<build> :项目构建配置,配置编译、运行插件等。

已有maven项目的使用

1)那么建议将下载的maven项目中的.idea目录和.iml文件删除
2)在idea中直接open项目,如果项目生成不成功可以重建
3)明确下载项目配置
4)确定JDK
5)确定项目模块

原文地址:https://www.cnblogs.com/heibaimao123/p/13782496.html