Maven

Posted 丨渍丨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven相关的知识,希望对你有一定的参考价值。

Maven

1.1 什么是 Maven

Maven 的正确发音是[ˈmevən],而不是“马瘟”以及其他什么瘟。Maven 在美国是一个口语化的词
语,代表专家、内行的意思。
一个对 Maven 比较正式的定义是这么说的:Maven 是一个项目管理工具,它包含了一个项目对象模
型 (POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管
理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标
(goal)的逻辑。

 Maven 是项目管理工具 对软件项目提供构建与依赖管理

Maven是Apache下的Java开源项目

 

1.2Maven 核心特性

项目设置遵循统一的规则,保证不同开发环境的兼容性

强大的依赖管理,项目依赖组件自动下载、自动更新

可扩展的插件机制,使用简单,功能丰富

Maven 的依赖管理:传统工程jar包放在项目中,maven开发的工程根据jar的坐标找到jar仓库。

仓库检索网站https://search.maven.org/

项目的一键构建:我们的项目,往往都要经历编译、测试、运行、打包、安装 ,部署等一系列过程。指的是项目从编译、测试、运行、打包、安装 ,部署整个过程都交给 maven 进行管理,这个过程称为构建。

 Maven 的使用

1.官网下载:Maven – Download Apache Maven

下载第二个

2.解压到D盘

3.添加环境变量

    变量名:MEVEN_HOME

    变量值:D:\\apache-maven-3.8.1

    在Path中添加:%MANEN_HOME%\\bin

    确保环境变量中有JAVAHOME

4.打开命令行窗口 输入mvn -v

maven项目标准目录结构

src/main/java目录     核心代码
src/main/resources 配置文件部分
src/test/java目录 测试代码部分,如 JUnit 测试类
src/test/resources 测试配置文件,如 spring, hibernate 配置文件
src/main/webapp 页面资源 ,js,css,图片等等
target 项目输出的目录,用于存储jar,war文件
target/classes 字节码(.class)的编译输出目录
pom.xml maven 项目核心配置文件

 

Maven常用命令

命令 用途
mvn archetype:generate 创建Maven工程结构
mvn compile 编译源代码
mvn test 执行测试用例
mvn clean 清除产生的项目
mvn package 项目打包
mvn install 安装至本地仓库

1.clean
clean 是 maven 工程的清理命令,执行 clean 会删除 target 目录及内容。

2.compile
compile 是 maven 工程的编译命令,作用是将 src/main/java 下的文件编译为 class 文件输出到 target
目录下。

3.test
test 是 maven 工程的测试命令 mvn test,会执行 src/test/java 下的单元测试类。也会编译src/main/java的代码

4.package
package 是 maven 工程的打包命令,对于 java 工程执行 package 打成 jar 包,对于 web 工程打成 war
包。

5.install
install 是 maven 工程的安装命令,执行 install 将 maven 打成 jar 包或 war 包发布到本地仓库。会执行compile,test,package,把项目放在了本地仓库

Maven生命周期

Maven概念模型

项目对象模型 (Project Object Model)
一个 maven 工程都有一个 pom.xml 文件,通过 pom.xml 文件定义项目的坐标、项目依赖、项目信息、
插件目标等。

赖管理系统(Dependency Management System)
通过 maven 的依赖管理对项目所依赖的 jar 包进行统一管理。
比如:项目依赖 junit4.9,通过在 pom.xml 中定义 junit4.9 的依赖即使用 junit4.9,如下所示是 junit4.9
的依赖定义:

<!-- 依赖关系 -->
<dependencies>
	<!-- 此项目运行使用 junit,所以此项目依赖 junit -->
	<dependency>
		<!-- junit 的项目名称 -->
		<groupId>junit</groupId>
		<!-- junit 的模块名称 -->
		<artifactId>junit</artifactId>
		<!-- junit 版本 -->
		<version>4.9</version>
		<!-- 依赖范围:单元测试时使用 junit -->
		<scope>test</scope>
</dependency>

 Maven坐标

 GroupId:机构或者团体的英文,采用 逆向域名 形式书写

ArtifactId:项目名称 说明其用途,例如:cms,oa...
Version: 版本号,一般采用 版本+单词 形式  例如1.1.0.RELEASE 

 idea 开发 maven 项目

1 打开FileSettings 配置 maven

在没网时会加载本地的

2 idea 中创建一个 maven 骨架的 Java工程

3 idea 中创建一个 maven 骨架的 web工程

Maven国内服务器

maven.aliyun.com    仓库服务 (aliyun.com)

1.选择public

2.在版本下添加依赖

<repositories>
    <repository>
        <!--创建私服-->
        <id>aliyun</id>
        <name>aliyun</name>
        <url>https://maven.aliyun.com/repository/public</url>
    </repository>
</repositories>

设置Maven本地仓库路径

在setings.xml 文件<settings节点下添加  

  <localRepository>D:/maven_repositroy</localRepository>

 

以上是关于Maven的主要内容,如果未能解决你的问题,请参考以下文章

Spring+SpringMVC+MyBatis+Maven框架整合

关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段

如何在 Apache Felix maven-bundle-plugin 中设置 Provide-Capability 标头?

Maven FTP部署:无法创建目录

如何从詹金斯访问maven属性?

向小军 “小黑” 正式加入 Maven Skateboards