Maven简单的学习与总结

参考资料:《Maven实战》

1.使用Maven的过程中遇到了不少问题,为了方便快速定位问题,自己系统学习了Maven仓库,生命周期,插件,坐标和依赖等,下面简单谈谈。

(1)Maven坐标和依赖:

Maven世界构件太多,为了减少寻找jar包等相对机械和耗时的问题,引入的坐标机制。

坐标包含的元素:groupId,artifactId,version,packaging,classifier。

依赖包含的元素:type,scope,optional,exclusions,这里需要说的一点是,在实际项目中使用exclusions的时候,经常会出现依赖的情况会比较复杂,使用exclusions往往效果不是很好,所以使用的时候注意下。第二,依赖的传递性这块比较烦,但是只有搞清楚这块的关系,才能快速定位依赖版本等问题,我的经验是通过删除jar包,看下载依赖包的顺序,定位依赖问题比通过打印依赖树要快。

(2)仓库

仓库是为了减少引入大量重复依赖而构建的一套机制,仓库的相关的配置可以在setting.xml中找到。

本地仓库:缓存常用的构件到本地。

中央仓库:统一管理当前流行的所有的构件。

私服:局域网的远程仓库,供局域网内部人员使用。

下载依赖的顺序:坐标确定——>版本确定——>本地仓库——>远程仓库

(3)生命周期和插件

为了统一和规范编译,测试打包等过程引入的概念和插件。 生命周期(是一个抽象概念)和插件(具体执行任务)相辅相成。

生命周期:三个阶段分别为clean,default,site(未使用过),这样分是因为这三个周期的调用过程互不影响。

clean的三个阶段:pre-clean,clean,post-clean。

default:简单的列举几个比较重要的阶段,compile,package,install,deploy。

site:简单的了解过一点。

这里简单的对最近学习maven相关做个小总结,对非常基础的东西就不一 一展开讲了。

时间: 2024-10-12 14:08:42

Maven简单的学习与总结的相关文章

Maven学习第4期---Maven简单使用

一.Maven常用命令 在学习使用Maven构建项目之前,先来了解一下Maven一些实用的命令.mvn的命令有很多,在项目开发中,理解了下面的几个常用命令后,运用maven就基本没有问题了.Maven常用的命令如下: 1.1 常用的mvn命令 mvn archetype:create 创建 Maven 项目mvn compile 编译主程序源代码,不会编译test目录的源代码.第一次运行时,会下载相关的依赖包,可能会比较费时mvn test-compile 编译测试代码,compile之后会生成

android的简单入门学习

话说光配环境就整死我了, 不是说多么难, 是最近google被屏了, 很多sdk里面需要下载的东西都下不下来, 坑爹啊.  最后跟扫拉稀要了一个他配置好的,才运行了. android目录分析: assets 资产目录,存放文件,这些文件会被打包到应用程序的apk(安装包) bin 编译后的文件目录 gen 目录自动生成的目录 project.properties 代表编译的版本 target = "" 来修改编译版本 libs 支持jar包 会被添加到android depend 目录

文章分享:简单数据结构学习:单向链表

文章分享:简单数据结构学习:单向链表:https://www.textarea.com/aprikyb/jiandan-shujujiegou-xuexi-danxiang-lianbiao-252/

maven权威指南学习笔记(三)——一个简单的maven项目

目标: 对构建生命周期 (build  lifecycle),Maven仓库 (repositories),依赖管理 (dependency management)和项目对象模型 (Project Object Model)有一个基本的理解 目前不准备深入学习maven故此使用工具ideaj 来帮助学习, 用idea创建一个默认的maven工程,结构如下: 相关命令: 打包:mvn package 编译:mvn compile 编译测试程序:mvn test-compile 清空:mvn cle

Maven简单教程(一)

       最近新项目得用到Maven,所以在网上在查阅的很多资料,却陷入了各种复杂中去.我一直觉得学习一门新的技术,首先先知道为什么学?其次是,最快的速度入门(自己能跑一个简单的demo).其他的在工作中碰到了在Google就好.不能学了一大堆,最后发现根本没用到,时间久了又都忘了. 问题:为什么学Maven?        解决了:团队开发,需要加载各种包,各个成员之间同步问题. Maven 是一个项目管理和构建自动化工具.Maven把项目依赖的包和版本,利用配置文件管理起来,将项目与依赖

以最简单方式学习Linux

有很多关于Linux的书籍,博客.大多数都会比较"粗暴"的将一大堆的命令塞给读者,从而使很多.NET程序员望而却步.未入其门就路过了. 所以我设想用一种更为平滑的学习方式, 就是在学习命令时,先用纯语言来介绍Linux背景和动机. 就如同所有的的网络游戏都要先介绍游戏的历史观,然后再介绍游戏的操作. 大多数初学者在刚刚接触Linux都会有非常陌生的感觉.往往会有一些疑惑和问题.而我们就沿着这些问题,从远及近,从宏观到微观来理解Linux的简洁和美丽. 问题1: Winows有注册表,为

maven权威指南学习笔记(五)—— POM

Archetype插件通过 pom.xml 文件创建了一个项目.这就是项目对象模型 (POM),一个项目的声明性描述. 当Maven运行一个目标的时候,每个目标都会访问定 义在项目POM里的信息. 这个POM文件在maven1中是project.xml,在maven2时改为pom.xml. <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.

maven权威指南学习笔记(一)&mdash;&mdash;简介

maven是什么?有什么用? Maven是一个项目管理工具,它包含了     一个项目对象模型 (Project Object Model),     一组标准集合,     一个项目生命周期(ProjectLifecycle),     一个依赖管理系统(Dependency Management System),     用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑. 当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后 Mav

Maven 简单入门

目前我知道的java方面的构建工具有:ant,maven和gradle.其中ant较早,我也没用过.gradle出现最晚,吸取了ant和maven的一些优点,目前安卓开发主要使用的构建工具.这里不介绍gradle,介绍下maven. maven 的理念是约定俗成优于配置,怎么理解呢,就是maven默认情况下构建一个项目就会成一个默认的文件结构,像这样: 上面一个是个普通java工程(非web)的默认工程目录,如果要非要改也不是不行,但是遵守这样的规定有何不好呢? 根据上面的文件树,我们基本就可以