由于本人是从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——软件开发中一个神奇的项目管理工具的更多相关文章

  1. 音频软件开发中的debug方法和工具

    本文系作者原创.如转载,请注明出处. 谢谢! 音频软件开发同其他软件开发一样,都需要去调试.音频软件调试同其他软件调试方法有相同的地方,也有不同的地方,同时调试时还需要借助一些专门的工具,有了这些方法 ...

  2. Atitit. 软件开发中的管理哲学--一个伟大的事业必然是过程导向为主 过程导向 vs 结果导向

    Atitit. 软件开发中的管理哲学--一个伟大的事业必然是过程导向为主    过程导向 vs 结果导向 1. 一个伟大的事业必然是过程导向为主 1 1.1. 过程的执行情况(有明确的执行手册及标准) ...

  3. 软件开发中的完整测试所包括的环节UT、IT、ST、UAT

    软件开发中的完成测试环境所包括的环节包括:UT.IT.ST.UAT UT = Unit Test 单元测试 IT = System Integration Test 集成测试ST = System T ...

  4. 关于软件开发中兼容win7注册表的解决方案

    关于软件开发中兼容win7注册表的解决方案   编写人:CC阿爸 2014-3-14 l  近来在开发一winform程序时,发现在xp 系统访问注册表一切正常.可偏这个时候,微软又提醒大家.Xp今年 ...

  5. 软件开发中 SQL SERVER 任务的用法

    在软件开发中,经常性会用到定时任务.这个时候你可能会想到线程.但是事实中,线程方法比较麻烦.容易出错,资源竞争等问题,设计起来让你很头痛. 现在给大家提供一个新的思路,用SQL SERVER 的任务管 ...

  6. UML在软件开发中各个阶段的作用和意义

    经典的软件工程思想将软件开发分成5个阶段:需求分析,系统分析与设计,系统实现,测试及维护五个阶段. 之所以如此,是因为软件开发中饣含了物和人的因素,存在着很大的不确定性,这使得软件工程不可能像理想的, ...

  7. Java软件开发中迭代的含义

    软件开发中,各个开发阶段不是顺序执行的,而各个阶段都进行迭代并行执行的,然后在进入下一个阶段的开发. 这样对于开发中的需求变化,及人员变动都能得到更好的适应. 软件开发过程汇总迭代模型如下图所示:

  8. 《Maven在Java项目开发中的应用》论文笔记(十七)

    标题:Maven在Java项目开发中的应用 一.基本信息 时间:2019 来源:山西农业大学 关键词:Maven:Java Web:仓库:开发人员:极限编程; 二.研究内容 1.Maven 基本原理概 ...

  9. 软件开发中oracle查询常用方法总结

    上次新霸哥和大家讲解了一些关于oracle的知识发现大家对oracle还是比较感兴趣的,下面新霸哥就大家比较关系的oracle中常用的查询有哪几种?做个和oracle相关的开发的朋友可能会知道答案,但 ...

随机推荐

  1. 创建windows窗口

    from tkinter import * win=Tk()                                       #创建窗口对象 win.title("我的第一个gu ...

  2. CentOS 7 内核更新后删除旧内核(转载)

    CentOS 7 内核更新后删除旧内核 0.当前 # uname -sr Linux 3.10.0-123.20.1.el7.x86_64 1.搜索查询 # rpm -q kernel kernel- ...

  3. Write a program to copy its input to its output, replacing each tab by \t, each backspace by \b, and each backslash by \\. This makes tabs and backspa

    #include <stdio.h> #define DBS '\\' void main() { int c; while((c=getchar())!=EOF) { if(c=='\t ...

  4. python unittest自动测试框架

    编写函数或者类时进行测试,确保代码正常工作 python  unittest 模块提供了代码测试工具.按照定义测试包括两部分:管理测试依赖库的代码(称为‘固件’)和测试本身. 单元测试用于核实函数的某 ...

  5. 介绍web开发中实现会话跟踪的常用技术方法

    由于http是无状态的协议,这种特性严重阻碍了客户端与服务器进行动态交互,例如购物车程序,客户在购物车中添加了商品,服务器如何知道购物车已有的物品呢?为了支持客户端与服务器之间的交互,为了弥补http ...

  6. 基于 React 开发了一个 Markdown 文档站点生成工具

    Create React Doc 是一个使用 React 的 markdown 文档站点生成工具.就像 create-react-app 一样,开发者可以使用 Create React Doc 来开发 ...

  7. DP没入门就入土

    写在前面 记录最近刷的DP题 以及 打死都不可能想到状态设计DP系列 汇总 洛谷 P6082 [JSOI2015]salesman 树形\(\texttt{DP}\) + 优先队列 比较容易看出来这是 ...

  8. CF 938D Buy a Ticket 题解

    题目 Musicians of a popular band "Flayer" have announced that they are going to "make t ...

  9. Cypress系列(13)- 详细介绍 Cypress Test Runner

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 前言 Test Runner 也叫运行器 ...

  10. 钉钉内置的浏览器怎么改变title

    在我项目的开发过程当中,遇到过在钉钉打开的vue写的h5页面,通过在路由切换的时候通过全局的路由钩子函数改变 document.title 的内容失效的问题. const routes = [ { p ...