博客
关于我
Maven
阅读量:719 次
发布时间:2019-03-21

本文共 1284 字,大约阅读时间需要 4 分钟。

仓库

Maven仓库基于简单文件系统,用于集中式管理Java开发工具包(API组件)。每个项目都有独特的坐标,可以通过这些坐标查找相应的API组件。在查找时,Maven首先会在本地仓库搜索,如果找不到则会访问远程仓库获取组件。

远程仓库

远程仓库由官方提供或公司内部提供的私服构成,主要用于获取依赖项。

本地仓库

本地仓库位于本地文件系统,用于存储从远程仓库克隆下来的组件及临时构建文件。

项目类型

POM工程

POM(Project Object Model)是逻辑工程,通常用于父工程或聚合工程中,主要用于版本控制,应避免在其中写代码。

JAR工程

JAR(Java Archive)将源代码打包成标准的可执行JAR文件。

WAR工程

WAR(Web Application Archive)将源代码打包成用于部署的Web应用文件。

项目结构

项目结构通常如下:

ProjectName/├── src/             源码目录│   ├── main/       主程序源码│   │   ├── java/    Java源码│   │   └── resources/ 配置文件│   └── test/        测试源码├── pom.xml          Maven工程核心配置文件└── target/         编译目录

项目关系

Maven将每个项目视为对象,项目间通过依赖关系连接。

依赖

依赖传递

当一个项目依赖于另一个项目时,该依赖的依赖也会被当前项目继承。

最短路径优先

在处理依赖冲突时,Maven会选择路径最短的依赖使用。

声明顺序优先

如果有多个符合条件的依赖,顺序声明的依赖优先被选择。

依赖排除

用于阻止不必要的传递依赖。

依赖范围

  • compile:默认范围,依赖在编译和运行时起作用。
  • provided:依赖只在编译和测试时起作用。
  • runtime:依赖只在运行时起作用。
  • system:使用本地依赖而不是仓库中的。
  • test:依赖只在测试时起作用。
  • import:子项目依赖必须使用当前项目指定的版本。

聚合

Maven支持多个项目通过POM聚合,生成一个包含所有项目的单个JAR/WAR文件。

POM文件

POM文件通常如下结构:

4.0.0
cn.superstallion
MM
1.0-SNAPSHOT
8
8

Maven命令

命令 说明
clean 清除之前编译的文件,准备新编译。
compile 将源文件编译成字节码。
test 执行测试,调用Junit等测试框架。
package 将构建文件打包为JAR或WAR文件。
install 将构建文件安装到本地仓库。
deploy 将构建文件部署到私服。

转载地址:http://iogrz.baihongyu.com/

你可能感兴趣的文章
Nitrux 3.8 发布!性能全面提升,带来非凡体验
查看>>
NiuShop开源商城系统 SQL注入漏洞复现
查看>>
NI笔试——大数加法
查看>>
NLog 自定义字段 写入 oracle
查看>>
NLog类库使用探索——详解配置
查看>>
NLP 基于kashgari和BERT实现中文命名实体识别(NER)
查看>>
NLP 模型中的偏差和公平性检测
查看>>
Vue3.0 性能提升主要是通过哪几方面体现的?
查看>>
NLP 项目:维基百科文章爬虫和分类【01】 - 语料库阅读器
查看>>
NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_数据稀疏(出现了词库中没有的词)_统计语言模型的平滑策略---人工智能工作笔记0035
查看>>
NLP三大特征抽取器:CNN、RNN与Transformer全面解析
查看>>
NLP学习笔记:使用 Python 进行NLTK
查看>>
NLP度量指标BELU真的完美么?
查看>>
NLP的不同研究领域和最新发展的概述
查看>>
NLP的神经网络训练的新模式
查看>>
NLP采用Bert进行简单文本情感分类
查看>>
NLP问答系统:使用 Deepset SQUAD 和 SQuAD v2 度量评估
查看>>
NLP项目:维基百科文章爬虫和分类【02】 - 语料库转换管道
查看>>
NLP:从头开始的文本矢量化方法
查看>>
NLP:使用 SciKit Learn 的文本矢量化方法
查看>>