详细教程:认识Maven及项目对象模型(POM)核心内容 看了还不会你放弃吧

Maven是什么

优秀的项目构建工具
maven是什么,maven是一个优秀的java项目构建工具。而构建是什么,就是通常我们工作中常常要做的那些繁琐的事,如编译、单元测试、打包、部署等等。

为什么使用Maven

使用maven创建项目,具体的创建过程都由maven内部实现,使得凡是使用它构建的项目基本结构都是一样的,这样统一了风格之后便更利于团队的开发效率。
拥有约定,知道你的代码在哪里,放到哪里去。
拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程。
只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮你处理其他事情。
拥有依赖管理,仓库管理 。

Maven的目录结构

1、顶级目录结构
    src:目录是源代码和测试代码的根目录
    
    target:目录由Maven创建。它包含所有编译的类,JAR文件等。当执行 mvn clean 命令时,Maven将清除目标目录。
    
    pom.xml:该文件是Maven项目的核心配置文件,配置jar包的坐标信息。
    
  2、src目录结构 
  
    mian:该目录下存放的是该项目的主要代码文件,下面有三个文件夹,分别用来存放:

Java:该目录用来存放Java的源代码文件
      
      resources:该目录主要用来存放项目的一些配置文件(比如spring的xml配置文件)。
      
      webapp:该目录相当于web项目下webcontent的目录,用来存放js、jsp、web.xml等文件 ,webapp目录包含 WEB-INF 目录。
      
    test:该目录用来存放项目的测试文件
    
      Java:该目录主要存放该项目的测试所用的Java源代码。
      
      resources:目录包含您项目所需的资源。

Maven的构建生命周期

生命周期(lifecycle)由多个阶段(phase)组成,每个阶段有一个或多个目标(goal),一个目标是mvn的最小任务单元,简化的默认生命周期从校验到部署如下

校验 - 初始化 - 编译 -测试 -打包 - 集成测试 -安装-部署
validate-initialize-compile-test-package-integrationTest-install-deploy

Maven坐标

使用下面的三个向量在仓库中唯一定位一个Maven工程

1)groupId 公司的域名反写 com.woniuxy.cq

2)artifactId 项目名 rocket

3)version 版本 SNAPSHOT(快照版本) rc RELEASE GA milestone

Maven依赖

(1)依赖范围:
compile 默认,对于编译,测试,运行三个状态都有效

test 顾名思义,只针对执行test代码

provided 对于编译和测试时有效,但运行时无效,典型的时servlet-api,运行时这个由容器来提供

runtime 对测试和运行时有效,但编译时无效

system 本地依赖,不建议使用

表格显示如下:
在这里插入图片描述
(2)依赖传递

只有编译时和运行时依赖是传递的

A->B->C(0.2)

A->C(0.1)

最短路径原则:C(0.1)

A->B->C(0.2)

A->D->C(0.1)

优先声明原则:C(0.2)

Maven仓库

在 Maven 的术语中,仓库是一个位置(place)。

Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。

在 Maven 中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。

Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方。

Maven 仓库有三种类型:

本地(local)
中央(central)
远程(remote)

本地仓库:当前电脑上部署的仓库项目,为当前电脑上所有的Maven工程服务。

私服是一种特殊的远程仓库因为他是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的maven用户使用。

中央仓库是maven公司提高的最大的仓库,里面拥有最全的jar包资源,所以私服上也没有的时候就会去中央仓库找,因为中央仓库是外网下载速度慢,所以我们需要搭建自己的私服。

**

Maven常用命令

**
创建Maven的普通java项目:

mvn archetype:create
-DgroupId=packageName
-DartifactId=projectName

创建Maven的Web项目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=webappName
-DarchetypeArtifactId=maven-archetype-webapp

编译源代码: mvn compile
编译测试代码:mvn test-compile
运行测试:mvn test
打包:mvn package
在本地Repository中安装jar:mvn install
清除产生的项目:mvn clean
编译测试的内容:mvn test-compile

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值