首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

14 个方位全面克服 Maven 的技术点

一文从 14 个方向分析 Maven 的技术点,在创建 Java 项目或者使用开源的项目代码的过程中不再错误理解 Maven 的概念,不再对于 pom.xml 感到无从下手,正确理解 Maven 在项目的生命周期中扮演的角色...Maven 是什么 同样像之前的文章一样,既然追根溯源,那就找到它的真身,而不是去查找经过好几手的信息。笔者会在不同的文章中一直提到这个方法。 ?...而 default 表示仓库的布局是 Maven 2 及 Maven 3 的默认布局,而不是 Maven1 的布局。 根据上述,Maven 会从仓库下载对应版本的构件。...各个生命周期是相互独立的,而一个生命周期的阶段是有前后依赖关系的。 Maven 中的父与子 ? 这里只是做了一个类比,实际上笔者引出的是 pom.xml 中的 Parent 的使用。...:表示父模块 POM 的相对路径,当项目构建时,Maven 会首先根据 relativePath 检查父 POM,如果找不到再从本地仓库查找。

76120
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Maven项目管理

    Maven也需要安装环境,IDEA已经自带了Maven环境 项目结构 POM文件是整个Maven项目的配置文件,使用XML编写的: aven的配置文件是以project为根节点,而modelVersion定义了当前模型的版本 groupId、artifactId、version这三个元素合在一起,用于唯一区别每个项目...test :只在测试时有效 例如:JUnit只会在测试阶段使用JUnit,而实际项目运行时就用不到测试了 system:作用域和provided是一样的,但是它不是从远程仓库获取,而是直接导入本地... IDEA默认给我们添加了一个parent节点,表示此Maven项目是父Maven项目的子项目,子项目直接继承父项目的groupId,子项目会直接继承父项目的所有依赖,除非依赖添加了...optional标签 还可以让父Maven项目统一管理所有的依赖,包括版本号等,子项目可以选取需要的作为依赖,而版本全由父项目管理 将dependencies全部放入dependencyManagement

    28730

    快速学习Maven-Maven工程运行调试

    /weixin_42528266/article/details/103420208 4.1 端口占用处理 重新执行 tomcat:run 命令重启工程,重启之前需手动停止 tomcat,否则报下边的错误...总结 5.1 常用的 maven 命令 常用 的 maven 命令包括: compile:编译 clean:清理 test:测试 package:打包 install:安装 5.2 坐标定义 在 pom.xml...打包类型 jar:执行 package 会打成 jar 包 war:执行 package 会打成 war 包 pom :用于 maven 工程的继承,通常父工程设置为 pom`` 5.3 pom 基本配置...pom.xml 是 Maven 项目的核心配置文件,位于每个工程的根目录,基本配置如下: :文件的根节点 .... :打包类型,一般有 jar、war、pom 等 :项目的显示名,常用于 Maven 生成的文档。

    95010

    Maven

    我们可以看到,Maven的配置文件是以project为根节点,而modelVersion定义了当前模型的版本,一般是4.0.0,我们不用去修改。... 我们可以看到,IDEA默认给我们添加了一个parent节点,表示此Maven项目是父Maven项目的子项目,子项目直接继承父项目的groupId,子项目会直接继承父项目的所有依赖...,除非依赖添加了optional标签 我们还可以让父Maven项目统一管理所有的依赖,包括版本号等,子项目可以选取需要的作为依赖,而版本全由父项目管理,我们可以将dependencies全部放入dependencyManagement...节点,这样父项目就完全作为依赖统一管理。...多模块下父项目存在一个packing打包类型标签,所有的父级项目的packing都为pom,packing默认是jar类型,如果不作配置,maven会将该项目打成jar包。

    68730

    学习创建Maven,SpringBoot聚合项目及使用SLF4j打印日志(1)

    > 例如: 完成后,该项目作为父级项目,可以暂时不处理了,接下来,对父级项目的名称点鼠标右键,再创建子级项目,创建的菜单命令是New > Module: 创建Module(模块)项目时,依然选择Maven...例如: 当子模块创建出来后,在左侧的项目管理面板可以看到子模块项目: 并且,在父项目的pom.xml中已经自动添加了节点,且将子模块项目配置进来了: 子模块项目也有自己独立的...通过父项目的配置使得各子模块项目都可以使用同样的依赖 在父级项目的pom.xml中添加依赖及相关配置: 则各个子模块项目就不需要添加junit依赖,而可以直接使用junit进行单元测试了: 1.3...pom.xml中添加依赖,但是,添加依赖时,不需要指定版本: 然后,更新Maven(点刷新按钮)后再次进行测试: 至此,该子项目就可以使用MySQL的依赖了!...创建完成后,在子模块项目的pom.xml文件中可以看到其父项目依然是SpringBoot项目,而不是之前创建的blog项目: 则需要将此处的父项目改为blog项目(打开父项目的pom.xml文件找到相关信息后复制并粘贴到子模块项目中

    87520

    技能篇:maven的简易教程

    --绝大多数情况下,该目录下的内容 会被拷贝到输出目录(因为脚本是被解释的,而不是被编译的)。--> <!...X.jar 声明优先;若引用路径长度相同时,在pom.xml中谁先被声明 6Maven的聚合和继承 同时配置多个运行项目称之聚合,聚合的项目有一个父类pom.xml文件,而各个项目也有属于自己的pom.xml...>父pom所在项目的artifactId 父pom所在项目的版本号 7mvn使用实例 //创建Maven的普通...Repository中安装jar mvn install //清除旧的项目,并生成新的jar mvn clean install //清除旧的项目,并生成新的jar且上传远程仓库 mvn clean install...deploy 8欢迎指正文中错误 Part2参考文章 Maven 教程[1] 史上最全的maven的pom.xml文件详解[2] Maven使用详解[3] maven常用命令集合[4] 参考资料 [

    98320

    day71_淘淘商城项目_04_匠心笔记

    注意:   插入新的叶子结点之后需要判断,   如果在原结点是叶子节点的时候添加新的叶子节点,   即需要将“原结点是叶子节点”更新为新的父节点,   即将新的父节点的is_parent属性设置为“1”...,   因为它的下面有新的叶子节点了!!!...// 即需要将“原结点是叶子节点”更新为新的父节点,          // 即将新的父节点的is_parent属性设置为“1”,          // 因为它的下面有新的叶子节点了!!!         ...2、如果删除的节点是子节点,则直接删除;   再查看删除节点的父节点下是否还有子节点,如果没有需要把删除节点的父节点的is_parent改为false。   ...{ // 通过该子节点的父节点id获取对应父节点的子节点列表的长度             // 是单个子节点,获取单个子节点的父节点,把该父节点的is_parent改为false,更新数据

    95310

    Maven之(五)Maven仓库

    例如,有时候会只为开发目的开启对快照版本下载的支持,就需要把中的设为“false”,而中的设为“true”。...由于远程仓库的配置是挂在节点下面,如果配置有多个节点,那么就可能有多种远程仓库的设置方案,该方案是否生效是由它的父节点是否被激活决定的。...jar包,如果本地项目依赖的是快照版,那么maven一旦发现该jar包有新的发布,就会将它下载下来替代以前的旧版本。...需要注意的是,配置私服的信息是在pom文件中,但是认证信息则是在setting.xml中,这是因为pom文件往往是被提交到代码仓库中供所有成员访问的,而setting.xml是存放在本地的,这样是安全的...在这里有人可能会有一个疑问,所有的仓库设置不是已经在setting.xml中配置好了吗,为什么在pom的发布管理节点当中还要配置一个url?

    3.7K10

    一小时教你学会 Maven 项目的构建与管理(2)

    /pom.xml project根节点下配置parent节点指定继承的父项目坐标,groupId、artifactId、version必选,唯一标识父项目...,relativePath:可选,父项目的pom.xml文件的相对路径,默认值是.....Maven首先在当前构建项目的地方寻找父项目的pom,其次在本地文件系统的relativePath位置,然后在本地仓库,最后在远程仓库寻找父项目的pom. dependency依赖配置 的依赖时必须通过systemPath元素显示第指定依赖文静的路径。由于该类依赖不是通过Maven仓库解析的,而且往往与本机系统绑定,可能造成不可抑制,应谨慎使用。...默认值是warn-Maven会在执行构建时输出警告信息,可用值还有fail-Maven遇到校验和错误时就让构建失败;ignore-使Maven完全忽略校验和错误。

    1K31

    maven学习笔记 maven的使用

    groupId是公司或组织的标识符,artifactId是具体项目的标识符,项目版本选择快照snapshot就行了。这样就新建好了一个maven项目。...这里是maven项目编译生成的类的位置。 web。如果是web项目的话,还会有个web文件夹。web.xml、html和jsp等文件都放在这里。 pom.xml文件。... POM文件的各个节点简单说明如下: * groupId。公司或者组织的标识符。 * artifactId。...默认是快照snapshot。 * packaging。项目的打包方式,常用的的有jar和war两种。 * dependencies。指定项目的依赖项。...用来管理依赖,在父项目的依赖管理中设置依赖之后,子项目就会自动继承这些依赖设置。 * properties。在此节点之下添加了自定义的属性,然后就可以在其他地方引用了。

    36320

    超详细!彻底说明白Redis持久化

    但是,RDB也有缺点,例如数据可能会丢失,因为 Redis 只会在指定的时间点生成快照文件。如果在快照文件生成之后,但在下一次快照文件生成之前服务器宕机,那么这期间的数据就会丢失。...bgsave:bgsave 命令会 fork 一个子进程(注意是子进程,不是子线程)在后台生成快照文件,不会阻塞 Redis 服务器,服务器进程(父进程)可以继续处理命令请求。...简单来说就是 fork()函数会复制父进程的地址空间到子进程中,复制的是指针,而不是数据,所以速度很快。...对临时文件进行压缩,去掉多余的空格和换行符等,减小文件体积。 将压缩后的内容写入到新的AOF文件中。 停止写入命令到旧的AOF文件,并将新的AOF文件的文件名替换为旧的AOF文件的文件名。...RDB和AOF两种主要的持久化方式各有其优势和使用场景。 RDB通过提供特定时间点的数据快照,对于灾难恢复是非常有效的;而AOF则通过记录每个写入操作,提供了更好的数据持久性保证。

    3.4K32

    SpringBoot内置依赖不加版本号是什么原理

    版本号写在哪里呢 在SpringBoot项目根目录下pom.xml里面,有一个parent节点,所以我们本地搭建的SpringBoot项目,其实是一个Maven父子项目。...需要管理的依赖,都放在父pom的dependencyManagement节点下,经常有小伙伴放错位置,如下图: ?...总结Maven父子项目知识点 在父pom里定义版本号,子pom不需要加版本号 父pom引入依赖时不会去下载,只有子pom也引入依赖时才真正去下载 在多模块项目中,父pom负责统一管理所有依赖的版本号...高频面试题 Q:Maven的坐标是个什么概念? A:我们平常看到的groupId、artifactId、version节点,其实就是Maven的坐标,通过这些坐标,可以唯一定位一个Jar包。...Q:Maven如何进行多模块管理? A:参照第3点,父pom使用module来管理所有子模块,子pom通过parent来标识父模块 Q:多模块应用如何管理版本号?

    1.6K20

    【附源码】Spring Boot 实现微信点餐系统,可以拿来吹了

    补充: setting.xml 文件的作用:settings.xml是maven的全局配置文件。而pom.xml文件是所在项目的局部配置。...GETSET:将给定 key 的值设为 value ,并返回 key 的旧值。先根据key获取到旧的value,再set新的value。...2: 分布式锁才用(Key,过期时间)的方式,如果锁存在,那么获取它的过期时间,如果锁的确已经过期了,那么获得锁,并且设置新的过期时间 错误分析:不同的客户端之间需要同步好时间。...例如,/foo/doo这个表示一个znode,它的父节点为/foo,父父节点为/,而/为根节点没有父节点。 ?...—> 如果不是监听上一个节点Node_n-1 等它释放掉分布式锁。)

    1.2K30

    实战 | SpringBoot微信点餐系统(附源码)

    而pom.xml文件是所在项目的局部配置。Settings.xml中包含类似本地仓储位置、修改远程仓储服务器、认证信息等配置。...GETSET:将给定 key 的值设为 value ,并返回 key 的旧值。先根据key获取到旧的value,再set新的value。...2: 分布式锁才用(Key,过期时间)的方式,如果锁存在,那么获取它的过期时间,如果锁的确已经过期了,那么获得锁,并且设置新的过期时间 错误分析:不同的客户端之间需要同步好时间。...例如,/foo/doo这个表示一个znode,它的父节点为/foo,父父节点为/,而/为根节点没有父节点。...—> 如果不是监听上一个节点Node_n-1 等它释放掉分布式锁。)

    1.5K20

    万字长文解析maven

    而构件之间又有依赖关系,在pom文件中通过dependencies来管理依赖,有些人也会不太规范地把构件称为依赖 dependency。...4.2 仓库配置 本地仓库地址,由settings.xml中的localRepository属性定义 远程仓库有几种配置方法: pom文件的repositories节点,例如 ...maven项目,通常都不会是单模块项目,其最佳实践是新建一个父模块,packaging设置为pom,并在父模块POM文件中配置modules,如: com.xxx...,添加子模块后,只需构建顶级模块,子模块会同时构建 7.1 模块的继承 子模块的好处: 可以一个命令构建完整个项目,而不必每个模块都单独构建 子模块可继承父模块的POM元素 能够被继承的元素有: groupId...通常快照版本以-SNAPSHOT结尾 11.3 父子工程版本号保持一致 一般父工程pom定义如下: com.xxx parent</artifactId

    15410

    史上最全的maven的pom.xml文件详解

    Maven首先在构建当前项目的地方寻找父项目的pom,其次在文件系统的这个位置(relativePath位置), 然后在本地仓库,最后在远程仓库寻找父项目的pom。...-- 声明项目描述符遵循哪一个POM模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的, 这是为了当Maven引入了新的特性或者其他模型变更的时候,确保稳定性。...如果你需要修改产生的web站点的索引页面,你应该修改你自己的 索引页文件,而不是调整这里的文档。...如果列出多个license,用户可以选择它们中的一个而不是接受所有license。 --> 新的版本中该元素可能被覆盖掉。该元素为依赖规定了文件 系统上的路径。需要绝对路径而不是相对路径。

    1.2K40
    领券