Maven——软件开发中一个神奇的项目管理工具
由于本人是从c++转入从事JAVA工作的 所以很多东西要从头学起,相信有很多跟我一样的人吧,那么我们一起来学习。
今天我们一起来认识下Maven这个工具,很多人可能会问题了,为什么说是工具呢?不是写代码用的嘛?其实它是项目管理工具,可以对 Java 项目进行构建、依赖管理,当然也可以对其他语言的项目进行管理,比如: C#,Ruby,Scala 和其他语言编写的项目。
Maven其实是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,它利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
我们知道了Maven的用途,我们再来看下它有哪些特点呢?
(1)项目设置遵循统一的规则,并且可以在任意工程共享
(2)依赖管理包括自动更新,Maven仓库是一个庞大且不断增长的库,同时子项目使用父项目依赖时,正常情况子项目应该继承父项目依赖,无需使用版本号
(3)扩展性较强,能够轻松编写 Java 或脚本语言的插件
(4)增加新功能时,只需很少或不需要额外配置即可
(5)同时Maven是基于模型的构建
Maven能够将任意数量的项目构建到预定义的输出类型中,如 JAR,WAR 或基于项目元数据的分发,而不需要在大多数情况下执行任何脚本
(6)并行构建
多项目并行编译的速度能使整个项目的编译速度普遍提高20 - 50 %。
(7)向后兼容性
最新的Maven版本兼容之前的旧版本,可以进行轻松移植,并且不影响使用
(8)项目信息的一致性站点
使用与构建过程相同的源数据,Maven 能够生成一个网站或PDF,包括想要添加的任何文档,并添加到关于项目开发状态的标准报告中
(9)发布管理和发布单独的输出
Maven 将不需要额外的配置,就可以与源代码管理系统(如 Subversion 或 Git)集成,并可以基于某个标签管理项目的发布。它也可以将其发布到分发位置供其他项目使用。
同时Maven 能够发布单独的输出,如 JAR,包含其他依赖和文档的归档,或者作为源代码发布
(10)更好的错误报告
Maven 改进了错误报告,它为您提供了 Maven wiki 页面的链接,您可以点击链接查看错误的完整描述
Maven的这十个特点使得Maven能够更好的为开发者提供服务,同时能够满足用户的各种定制化需求,那么它能帮助开发者做哪些事情呢?我们再来了解下。
Maven可以帮助开发者完成项目构建、项目相关文档生成、数据报告和错误报告、项目依赖、SCMs、 项目发布、 分发、 邮件列表等任务,为开发者高效工作提供了很大帮助。
另外其实Maven的配置在一定程度是存在约定的,也就是默认的配置数据,那么默认配置数据有哪些呢?我们一起来看:

我们在进行开发的时候要遵守这些约定配置,才能更加高效的完成我们的开发工作。
今天的分享就到这儿,后续会根据我的学习情况进行持续更新,欢迎大家关注,我们一起学习共同进步,谢谢
Maven——软件开发中一个神奇的项目管理工具的更多相关文章
- 音频软件开发中的debug方法和工具
本文系作者原创.如转载,请注明出处. 谢谢! 音频软件开发同其他软件开发一样,都需要去调试.音频软件调试同其他软件调试方法有相同的地方,也有不同的地方,同时调试时还需要借助一些专门的工具,有了这些方法 ...
- Atitit. 软件开发中的管理哲学--一个伟大的事业必然是过程导向为主 过程导向 vs 结果导向
Atitit. 软件开发中的管理哲学--一个伟大的事业必然是过程导向为主 过程导向 vs 结果导向 1. 一个伟大的事业必然是过程导向为主 1 1.1. 过程的执行情况(有明确的执行手册及标准) ...
- 软件开发中的完整测试所包括的环节UT、IT、ST、UAT
软件开发中的完成测试环境所包括的环节包括:UT.IT.ST.UAT UT = Unit Test 单元测试 IT = System Integration Test 集成测试ST = System T ...
- 关于软件开发中兼容win7注册表的解决方案
关于软件开发中兼容win7注册表的解决方案 编写人:CC阿爸 2014-3-14 l 近来在开发一winform程序时,发现在xp 系统访问注册表一切正常.可偏这个时候,微软又提醒大家.Xp今年 ...
- 软件开发中 SQL SERVER 任务的用法
在软件开发中,经常性会用到定时任务.这个时候你可能会想到线程.但是事实中,线程方法比较麻烦.容易出错,资源竞争等问题,设计起来让你很头痛. 现在给大家提供一个新的思路,用SQL SERVER 的任务管 ...
- UML在软件开发中各个阶段的作用和意义
经典的软件工程思想将软件开发分成5个阶段:需求分析,系统分析与设计,系统实现,测试及维护五个阶段. 之所以如此,是因为软件开发中饣含了物和人的因素,存在着很大的不确定性,这使得软件工程不可能像理想的, ...
- Java软件开发中迭代的含义
软件开发中,各个开发阶段不是顺序执行的,而各个阶段都进行迭代并行执行的,然后在进入下一个阶段的开发. 这样对于开发中的需求变化,及人员变动都能得到更好的适应. 软件开发过程汇总迭代模型如下图所示:
- 《Maven在Java项目开发中的应用》论文笔记(十七)
标题:Maven在Java项目开发中的应用 一.基本信息 时间:2019 来源:山西农业大学 关键词:Maven:Java Web:仓库:开发人员:极限编程; 二.研究内容 1.Maven 基本原理概 ...
- 软件开发中oracle查询常用方法总结
上次新霸哥和大家讲解了一些关于oracle的知识发现大家对oracle还是比较感兴趣的,下面新霸哥就大家比较关系的oracle中常用的查询有哪几种?做个和oracle相关的开发的朋友可能会知道答案,但 ...
随机推荐
- python编码--解码
在py3中只有两种数据类型:str bytes str: 存unicode(万国码)编码--全球通用的 bytes:存的是16进制的 1.str s='ehllo 丽庆' --->它存在内 ...
- Qt-绘图
1 简介 参考视频:https://www.bilibili.com/video/BV1XW411x7NU?p=37 参考文档:<Qt教程.docx> 本文简单介绍Qt的绘图与绘图设备. ...
- (五)ELK Logstash output
# 输出插件将数据发送到一个特定的目的地, 除了elasticsearch还有好多可输出的地方, 例如file, csv, mongodb, redis, syslog等 output { if [t ...
- DLL注入之windows消息钩取
DLL注入之windows消息钩取 0x00 通过Windows消息的钩取 通过Windows消息钩取可以使用SetWindowsHookEx.该函数的原型如下: SetWindowsHookEx( ...
- Linux下diff命令用法详解
大家好,我是良许. 我们在平时工作的时候,经常要知道两个文件之间,以及同个文件不同版本之间有何异同点.在 Windows 下,有 beyond compare 这个好用的工具,而在 Linux 下,也 ...
- day74 bbs项目☞点赞与评论
目录 一.文章详情展示 1 将侧边栏做成inclusion_tag 二.点赞点踩功能 三.评论功能 整体总结: 在出现bug的时候,先判断是前端bug还是后端bug,再判断bug错误类型,以及报错信息 ...
- Maven 专题(九):后记
尚硅谷视频链接:https://www.bilibili.com/video/av84877781/看视频的时候,根据自己的需要,访问量多的不一定是好的,适合自己的才是最好的,总的来说,尚硅谷的视频质 ...
- 04 flask源码剖析之LocalStack和Local对象实现栈的管理
04 LocalStack和Local对象实现栈的管理 目录 04 LocalStack和Local对象实现栈的管理 1.源码入口 1. flask源码关于local的实现 2. flask源码关于l ...
- Vue你不得不知道的异步更新机制和nextTick原理
前言 异步更新是 Vue 核心实现之一,在整体流程中充当着 watcher 更新的调度者这一角色.大部分 watcher 更新都会经过它的处理,在适当时机让更新有序的执行.而 nextTick 作为异 ...
- 快速突击 Spring Cloud Gateway
认识 Spring Cloud Gateway Spring Cloud Gateway 是一款基于 Spring 5,Project Reactor 以及 Spring Boot 2 构建的 API ...