`
柴秉承
  • 浏览: 87522 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

初学者如何学习Maven

阅读更多

个人感觉掌握Maven使用的核心是掌握maven插件的使用,以及掌握maven的依赖和依赖的优化,暂且不说maven仓库方面

 

先说说怎么样来快速掌握一个陌生插件的使用方式

 

在此之前需要学会使用maven的help插件,掌握了这个插件后就可以快速学会如何

 

先看看help插件的几个目标:

 

mvn help:effective-pom 可以查看有效的pom 是父pom超级pom和子pom最终组合成的pom文件

 

mvn help:effective-settings 查看有效的settings文件 maven会在用户的home目录 的.m2下创建settings.xml文件 这个文件的设置用来覆盖全局设置的 home目录在不同的系统下是不一样的 .m2里面的点在linux下代表的是隐藏目录 在windows下不会隐藏

 

mvn help:active-profiles 查看激活的profile

 

help插件有很多目标命令 其实掌握了最关键的一个 其他的都可以记住

mvn help:describe 插件描述的命令 通过这个命令你可以知道 某个插件有多少目标 每个目标的详细用法 可以设置哪些参数

 

help:describe 的用法是这样的 -Dplugin=<插件名或者插件前缀或者插件的完整标识>  -Dfull 加上了-Dfull就会显示这个插件的完整描述

 

要想查看目标的命令可以使用help插件的help目标 这个目标要设置两个参数 -Ddetail=true -Dgoal=<目标的名字>

 

这样就可以查看这个目标后面可以跟哪些参数 参数是用来干什么的

 

到这里插件的使用方法基本可以知道怎么获得了 只要英文有点基础应该不是问题

 

这里说个比较关键的插件 maven-dependency插件

 

如果不知道这个插件的使用方法 那么上面说的help插件就派上用场了

 

mvn dependency: resolve查看所有依赖的jar文件

 

mvn dependency:tree用树的形式显示依赖的jar文件

 

mvn dependency:analyze 分析对所有的jar文件的依赖 来显示使用了哪些没有声明的依赖,和哪些 声明了但没有使用的依赖,这个插件的目标用来对pom文件进行优化

 

说道这里就简单说一下maven的pom文件的优化

优化主要是针对多模块的项目,

优化从两点入手,

第一是:优化一个pom文件内 的重复依赖,

第二是:一个是优化兄弟模块之间的依赖,将兄弟模块里面重复的依赖提到父模块中

 

在优化的时候要注意 使用dependency:analyze 把里面显示的直接依赖,尽量显式的在pom文件内声明,因为不这样做,会留下潜在的问题,举个简单的例子:模块A依赖与a.jar文件 a.jar文件使用了b.jar文件 模块B也使用了b.jar文件在模块A添加依赖的时候 因为maven的传递依赖管理 会将b.jar文件也加在到classpath下 这样b理论上就不用声明对b.jar的依赖了,但是往长远的看一下 加入有一天A模块进过了改进不再需要对a.jar文件的依赖,这样依赖就删除了对a.jar依赖的声明,同时a.jar文件所依赖的jar文件也会从classpath中移除,此时项目就会出问题了,应为需要的b.jar不存在会导致模块B无法正常工作这就是不显式声明一个直接依赖隐藏的后果!

 

还有一个就是在pom文件内充分利用maven的隐式变量和系统变量

饮食变量主要包括三个env project settings 隐式变量可以通过${env.XXX}的形式来调用环境变量里面的变量值,如jdk的安装目录

 

系统是java.lang.System的getProperties()方法内的那些键值 这些键值都被暴露为pom的属性

 

今天就先总结这么多了!希望对初学maven的人有帮助

 

1
1
分享到:
评论

相关推荐

    一个空的maven工程

    这个标签进一步强调了这是一个还没有具体功能的Java项目,只包含了基础的框架和配置,适用于初学者学习Maven和Java开发流程,或者是作为其他复杂项目的基础模板。 **创建和使用空的Maven工程步骤**: 1. **初始化...

    maven 项目

    描述中的“简单的试一下吧”可能意味着这个项目是一个入门级的示例,适合初学者学习Maven的基本用法。这样的项目通常会包含基本的目录结构,比如`src/main/java`用于存放源代码,`src/main/resources`存放资源文件,...

    maven学习指南java(经典,实例)

    学习Maven前,需要具备一定的软件开发基础知识、了解Java SE,以及对Java EE的开发和部署过程有一个基本的概述。本教程的教学目的是让初学者快速了解并掌握Maven工具的使用,进而在项目开发中熟练运用,最终达到中等...

    Maven学习极品,对于初学者而言非常好的资料,极力推荐

    【 Maven学习极品:初学者的完美指南】 Maven,一个由Apache软件基金会开发的项目管理工具,是Java世界中不可或缺的一部分。它简化了构建过程,通过自动管理项目的依赖关系,使得开发者可以专注于编写代码,而不是...

    Maven实战,给初学者学习的好东西

    ### Maven实战:初学者的学习指南 #### Maven简介与重要性 Apache Maven 是一款项目管理和构建工具,主要用于 Java 项目的构建、依赖管理和项目信息管理。它通过一个项目对象模型(POM)来管理项目的构建、报告和...

    简单的ssm-maven项目,供初学者学习

    一个基础的maven项目,供给初学maven的同学检阅如何配置maven项目,采用jdk1.8,maven3.5.2,使用阿里云maven服务器导入jar包,内涵基础ssm的pom文件,包括跨域访问,供给大家学习交流使用。

    springboot-web-demo自己搭建的SpringBoot小Demo适合初学者(maven项目)

    同时,也可以学习Maven的构建流程,理解POM文件中的依赖管理和构建指令。此外,通过阅读和修改配置文件,你可以掌握SpringBoot的配置方式,以及如何通过Profile进行环境切换。 总的来说,"springboot-web-demo"是一...

    Maven_学习总结_全

    针对对初学者使用maven的遇到的问题的一些讲解 和学习的总结

    maven-springboot-bootstrap-angularjs学生数据库项目实践(初学者)

    适合初学者的maven学生数据库小项目,后端springboot,前端bootstrap+angularjs,项目结构清晰,适合初学者借鉴学习。运行前需要修改application.properties中的数据源配置,有问题email:940457307@qq.com

    基于Maven的SSM整合-初学者学习

    学习基于Maven的SSM整合完成的项目 详情见:https://blog.csdn.net/key_768/article/details/104004768和 https://blog.csdn.net/key_768/article/details/104040076 学习用,自取

    maven学习资源整理

    Apache Maven的官方文档是学习Maven的首选资源。这个文档详细介绍了Maven的概念、架构、配置以及使用方法。官方文档涵盖了从安装Maven到创建新项目,再到管理项目依赖和执行构建的全过程。通过阅读这份文档,你可以...

    idea 学习maven 全套资料 pdf

    本文将详细介绍Maven的基础知识,并提供在IntelliJ IDEA集成开发环境中学习Maven的资料。 一、Maven简介 1. Maven是什么 Apache Maven是一个软件项目管理和构建工具,它遵循项目对象模型(POM)的概念,POM是Maven...

    Java_Maven初学者教程与示例.zip

    总之,Java_Maven初学者教程与示例是一个宝贵的资源,通过学习和实践,你可以快速掌握Maven的使用,从而更好地进行Java项目的构建和管理工作。记得结合实际项目进行练习,以便更好地理解和应用所学知识。

    Maven 教程:基础篇-尚硅谷学习笔记 2022年

    本教程将深入介绍Maven的基础知识,帮助初学者快速掌握这一关键的开发工具。 ### 1. Maven项目对象模型(POM) POM是Maven的核心,它是一个XML文件,包含了关于项目的配置信息,如项目名称、版本、描述、开发者...

    Maven学习.7z

    **正文** Maven是Java开发领域中不可或缺的构建工具,尤其对于初学者而言,它能够极大地简化项目的构建、管理和依赖管理过程。...这份"Maven学习.pdf"文档应能提供全面的引导,帮助初学者一步步探索Maven的世界。

    Maven学习书籍

    **Maven学习书籍** 《Maven实战》是一本专门针对Maven这一强大的Java项目管理和构建工具的书籍。作为国内首部Maven领域的专著,它深入浅出地讲解了Maven的核心...无论是初学者还是有经验的开发者,都能从中受益匪浅。

Global site tag (gtag.js) - Google Analytics