Maven简单学习及介绍

本文详细介绍Maven的基础概念及常用命令,如mvn compile、mvn test等,并解释了pom.xml文件的各部分配置含义,如groupId、artifactId等。同时介绍了依赖管理原则和解决依赖冲突的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Maven简单介绍


maven命令

  • mvn -v:查看maven版本
  • mvn compile: 编译
  • mvn test:测试
  • mvn package:打包
  • mvn clean:删除target
  • mvn install: 安装jar包到本地仓库

pom.xml

坐标

在maven的世界中任何的依赖,插件都可以称为构件,任何构件都以坐标做为唯一标识

Maven便给我们制定了一套规则那就是使用坐标进行唯一标识。Maven的坐标元素包括groupId、artifactId、version、packaging、classfier。只要我们提供正确的坐标元素,Maven就能找到对应的构件,首先去你的本地仓库查找,没有的话再去远程仓库下载。如果没有配置远程仓库,会默认从中央仓库地址(http://repo1.maven.org/maven2)下载构件,该中央仓库包含了世界上大部分流行的开源项目构件,但不一定所有构件都有,我在以前的开发中就遇到过找不到oracle数据库jar包的问题,不知道现在是否依然如此。 
- groupId:包名 
- artifactId:模块名 
- version:版本

仓库

仓库管理依赖 
- 本地仓库 
- 中央仓库 
- denpendetcies:在pom.xml导入依赖 
镜像仓库: 
在config目录中找到setting配置文件,找到该位置进行修改(约156行) 
<mirror> 
<id>maven.net.cn</id> 
<mirrorOf>central</mirrorOf> 
<name>central mirror in china</name> 
<url>http://maven.net.cn/content/groups/public</url> 
</mirror>

更改本地仓库的位置: 
在config目录中找到setting配置文件,找到该位置进行修改(约55行)

<localRepository>E:\mvnRepository</localRepository>

自动创建目录骨架

创建目录的两种方式: 
1. mvn archetype:generat 
2. mvn archetype:generat -DgroupId=组织名,公司网址的反写+项目名 
-DartfactId=项目名-模块名 
-Dversion=版本号 
-Dpackage=代码所存在的包名


Maven生命周期

  • clean: 清理项目
  • default:构建项目(compile test package install)
  • site:生成项目的站点 
    pre-site:生成站点前要完成的工作 
    site:生成项目的在站点文档 
    post-site:在生成项目站点后要完成的工作 
    site-deploy:发布生成的站点到服务器上

Pom.xml解析

modelVersion :指定当前的版本 
groupId:指定所属的项目 
artfactId:项目名加模块名,是实际项目下的一个模块。 
version:版本号 
packaging:打包方式,不指定的话默认为jar 
name:项目描述名 
url:项目地址 
description:项目描述 
developers:项目许可证 
lecenses: 
organization:组织信息


dependencies:依赖 
denpendency:依赖项 
scope:依赖范围 
optional:设置依赖是否可选 
exclusions:排除依赖传递列表 
exclusion+坐标

dependencyManagement:依赖管理,里面可以有依赖列表。 
build:其中可以有插件列表plugin

parent:子模块对父模块的继承 
modules:指定多个模块,可以一起进行编译。

依赖的范围scope

compile:默认的级别。编译、测试、运行都有效。 
provided:在编译和测试时有效。 
runtime:在测试、运行时有效 
test:在测试时有效 
system:在编译和测试时有效,与本机系统相关联,可以移植性差。 
import:导入的范围,它只使用在dependencyManagement中,表示从其它的pom中导入denpendecy的配置。

## 依赖冲突 ## 
1.短路优先: 
A->B->C->X(jar) 
A->D->X(jar)优先解析

2.先声明先优先:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值