热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

菜鸟学工具——maven认知

Maven是什么?Maven是Apache下的一个纯Java开发的开源项目,一个项目管理的工具,使用Maven对Java项目进行构建,依赖管理。目前使用maven管理的项目在持续增长,注意ma
Maven是什么?

    Maven是Apache下的一个纯Java开发的开源项目,一个项目管理的工具,使用Maven对Java项目进行构建,依赖管理。目前使用maven管理的项目在持续增长,注意maven只能用来管理Java项目。

何为项目构建?

从源码编写到编译、测试、运行、打包、部署运行的过程

Maven项目VS传统项目构建

Eclipse构建项目的过程:

   

构建过程:

1)在eclipse中创建一个Java web工程

2)在工程中编写源代码以及配置文件等

3)对源代码进行编译,Java文件编译成class文件

4)执行Junit单元测试

5)将工程达成war包部署至tomcat运行

maven项目构建

   maven将项目构建的过程进行标准化,每个阶段使用一个命令完成。

1)清理阶段对应maven的命令是clean,清理输出的class文件

2)编译阶段对应maven的命令是compile,将java代码编程成class文件

3)打包阶段对应maven的命令是package,java工程打成jar包,web可以打成war包

在运行maven项目只需要一个命令:tomcat:run

对比两者的构建方式使用maven工程构建的优点

1、一个命令完成构建、运行,方便快捷

2、maven对每个构建阶段进行规范,利于大型团队协作开发

3、相比传统项目,maven项目占用空间很少

4、maven是纯Java语言的,当然支持跨平台使用。

为什么maven项目省空间?

    做Java项目的肯定深有体会,Java项目一般都需要使用第三方jar包才能运行,也就是说Java项目依赖于第三方jar包。maven项目之所以节约空间,maven进行了依赖管理,也就是对项目所有依赖的jar包进行规范化管理。

   相比传统方式依赖人工进行jar包管理,极有可能造成的问题

   1、jar包版本不统一,版本从而冲突;

   2、网上找jar包不方便(深有感触!);

   3、jar包使得工程过大。

   maven项目管理所依赖的jar包只需要在pom.xml添加jar包的坐标,自动从maven仓库中下载jar包,运行。

   1、利用pom.xml文件统一管理jar包,避免版本冲突

   2、maven团队维护了一个非常全的maven仓库,maven工程直接在中央仓库中直接下载jar包,极为方便!

【总结】    本文是对maven的一些初级认识,主要是对比传统项目进而分析maven的值得推广的地方。后续内容重点分析maven项目的依赖管理。最后啰嗦一句:maven项目最重要的就是pom.xml文件,里面的内容值得好好研究!小编在后续的博文也会进行讲解。    如有错误之处,欢迎拍砖!


   





推荐阅读
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Java程序设计第4周学习总结及注释应用的开发笔记
    本文由编程笔记#小编为大家整理,主要介绍了201521123087《Java程序设计》第4周学习总结相关的知识,包括注释的应用和使用类的注释与方法的注释进行注释的方法,并在Eclipse中查看。摘要内容大约为150字,提供了一定的参考价值。 ... [详细]
  • Week04面向对象设计与继承学习总结及作业要求
    本文总结了Week04面向对象设计与继承的重要知识点,包括对象、类、封装性、静态属性、静态方法、重载、继承和多态等。同时,还介绍了私有构造函数在类外部无法被调用、static不能访问非静态属性以及该类实例可以共享类里的static属性等内容。此外,还提到了作业要求,包括讲述一个在网上商城购物或在班级博客进行学习的故事,并使用Markdown的加粗标记和语句块标记标注关键名词和动词。最后,还提到了参考资料中关于UML类图如何绘制的范例。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • Jboss的EJB部署描述符standardjaws.xml配置步骤详解
    本文详细介绍了Jboss的EJB部署描述符standardjaws.xml的配置步骤,包括映射CMP实体EJB、数据源连接池的获取以及数据库配置等内容。 ... [详细]
  • 使用freemaker生成Java代码的步骤及示例代码
    本文介绍了使用freemaker这个jar包生成Java代码的步骤,通过提前编辑好的模板,可以避免写重复代码。首先需要在springboot的pom.xml文件中加入freemaker的依赖包。然后编写模板,定义要生成的Java类的属性和方法。最后编写生成代码的类,通过加载模板文件和数据模型,生成Java代码文件。本文提供了示例代码,并展示了文件目录结构。 ... [详细]
  • 项目运行环境配置及可行性分析
    本文介绍了项目运行环境配置的要求,包括Jdk1.8、Tomcat7.0、Mysql、HBuilderX等工具的使用。同时对项目的技术可行性、操作可行性、经济可行性、时间可行性和法律可行性进行了分析。通过对数据库的设计和功能模块的设计,确保系统的完整性和安全性。在系统登录、系统功能模块、管理员功能模块等方面进行了详细的介绍和展示。最后提供了JAVA毕设帮助、指导、源码分享和调试部署的服务。 ... [详细]
author-avatar
非常异族图腾
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有