由于本人是从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. Illustrate Java Access Levels

    https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html 官网教程,清晰明了. (完)

  2. Vue中$nextTick的理解

    Vue中$nextTick的理解 Vue中$nextTick方法将回调延迟到下次DOM更新循环之后执行,也就是在下次DOM更新循环结束之后执行延迟回调,在修改数据之后立即使用这个方法,能够获取更新后的 ...

  3. 常用API - Arrays、Math、Object

    Arrays类 概述 此类包含用来操作数组(比如排序和搜索)的各种方法.此类还包含一个允许将数组作为列表来查看的静态工厂. 除非特别注明,否则如果指定数组引用为 null,则此类中的方法都会抛出 Nu ...

  4. fastjson到底做错了什么?为什么会被频繁爆出漏洞?

    GitHub 15.8k Star 的Java工程师成神之路,不来了解一下吗! GitHub 15.8k Star 的Java工程师成神之路,真的不来了解一下吗! GitHub 15.8k Star ...

  5. .Net Core微服务入门全纪录(七)——IdentityServer4-授权认证

    前言 上一篇[.Net Core微服务入门全纪录(六)--EventBus-事件总线]中使用CAP完成了一个简单的Eventbus,实现了服务之间的解耦和异步调用,并且做到数据的最终一致性.这一篇将使 ...

  6. CSS Sprites精灵图(雪碧图)

    简介 CSS精灵图,是一种网页图片应用处理方式.允许将一个页面涉及到的所有零星图片都包含到一张大图中 利用CSS的"background-image","backgrou ...

  7. PreparedStatement 防止sql注入 练习

    使用的数据库 MariaDB 10.5.4版本   端口1054     数据库为jt_db,表 为user 数据库的建表和插入相关数据代码: create table user( id int pr ...

  8. 【线型DP】【LCS】洛谷P4303 [AHOI2006]基因匹配

    P4303 [AHOI2006]基因匹配 标签(空格分隔): 考试题 nt题 LCS优化 [题目] 卡卡昨天晚上做梦梦见他和可可来到了另外一个星球,这个星球上生物的DNA序列由无数种碱基排列而成(地球 ...

  9. Linux下对拍(A+B问题)

    对拍代码 #include<bits/stdc++.h> using namespace std; int main(){ for(int i=1;;i++){ system(" ...

  10. 《Object Storage on CRAQ: High-throughput chain replication for read-mostly workloads》论文总结

    CRAQ 论文总结 说明:本文为论文 <Object Storage on CRAQ: High-throughput chain replication for read-mostly wor ...