maven基础

maven基础概念

maven是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。

是什么

maven其实是bai一个构建工具、依赖管理工具、项目信息聚合工具

为什么

使用maven工具可以方便的编译代码、进行依赖管理、管理二进制库等。

目录结构

├─src          					源码
  ├─main						主要
  │  └─java						java源码
  │  │    └─com
  │  │        └─woniuxy
  │  │				└─build		包名
  │	 └─ resources       		资源: 配置文件          
  └─test						测试相关
      └─java	
          └─com
              └─woniuxy
                  └─build

生命周期

基础概念:
maven对构建(build)的过程进行了抽象和定义,这个过程被称为构建的生命周期(lifecycle)。生命周期(lifecycle)由多个阶段(phase)组成,每个阶段(phase)会挂接一到多个goal。
详细解释如下图:
在这里插入图片描述
简要概述:
校验–>初始化–>编译–>测试–>打包–>集成测试–>安装–>部署
validate–>initialize–>compile–>test–>package–>integrationTest–>install–>deploy

坐标

.基础概念:
compile:编译时依赖在所有阶段都可获得,这是默认值。
provided: 提供的依赖范围用来编译应用程序,但无需部署。若你用到jdk或者应用服务器提供的JAR,则使用此范围,servlet APIs就属于这个依赖范围。测试时,此依赖范围也加入到classpath。
runtime:运行依赖范围在编译阶段是不需要的,只有在运行时需要,比如JDBC驱动程序。
test:测试范围依赖,仅在编译和运行单元测试时需要(比如Junit)。
system 本地依赖,不建议使用。(nexus)
.<!-- 坐标 --> <groupId>com.woniuxy.build</groupId> 公司的域名反写 <artifactId>demo</artifactId> 项目名 <version>1.0-SNAPSHOT</version> 版本
依赖范围:

依赖范围**(scope)**编译时依赖测试时依赖运行时依赖是否打入包例子
compileYYYYSLF4J
providedYYYNSERVLET-API
testNYNNJUNIT
runtimeNYYYMYSQL JDBC DRIVER
systemYYYY有nexus后,不用system

依赖传递

只有编译(compile)时和运行时(runtime)依赖是传递的

原则:
<1>简单传递依赖:A->C:
A->B->C
<2>最短路径优先原则: A->C(0.2):
A->B-C(0.1)
A->C(0.2)
<3>第一声明优先原则:最终依赖C(0.1):
A->B->C(0.1)
A->E->C(0.2)

仓库

Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。
Maven 仓库有三种类型:
本地(local)
中央(central)
远程(remote)
当我们执行 Maven 构建命令时,Maven 开始按照以下顺序查找依赖的库:
本地仓库(local)->私服镜像(aliyun)中央仓库(central)->远程(remote)
aliyun:Maven 仓库默认在国外, 国内使用难免很慢,我们可以更换为阿里云的仓库。

常用命令

简单使用

1.
# 生成了java se 项目
mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.woniuxy.build -DartifactId=demo
# 在pom.xml的目录下运行项目
mvn clean compile exec:java -Dexec.mainClass="com.woniuxy.build.App"
# 打包
mvn package

2. 创建Maven的Web项目:   
    mvn archetype:create 
    -DgroupId=packageName    
    -DartifactId=webappName 
    -DarchetypeArtifactId=maven-archetype-webapp    
3. 编译源代码: mvn compile    
4. 运行测试:mvn test    
5. 打包:mvn package   
6. 清除产生的项目:mvn clean   
7. 生成eclipse项目:mvn eclipse:eclipse  
8. 生成idea项目:mvn idea:idea
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值