都知道,maven项目间依赖是双向绑定的(这个是自己瞎说的词,自己理解起来比较容易),即像树结构一样,一个子模块只能有一个父模块,父下面有多个子。...子模块使用parent标识父,父模块使用module标识子。 自己开始没有认清Maven的一些细节知识,这里做一下笔记算是,方便以后查找。...module里面的值填写的是以当前路径为起始的路径,这里举一个不规范的例子,我的子模块在父模块的上一层,那么,父模块的module里面就写: module>...../childmodule> 其中child是子模块的文件夹名,有点像Go语言的包引入 parent> xxxxx parent/> 子模块标记父模块,默认在子模块目录上一目录下去找,当前场景是找不到的...,于是就要添加一下relativepath parent> xxxxx Parent parent/> 父在子的下一级,所以这里直接写Parent
使用maven是为了更好的帮项目管理包依赖,maven的核心就是pom.xml。...这时候就需要用到parent标签, 我们创建一个parent项目,打包类型为pom,parent项目中不存放任何代码,只是管理多个项目之间公共的依赖。...在parent项目的pom文件中定义对common.jar的依赖,ABC三个子项目中只需要定义parent>parent>,parent标签中写上parent项目的pom坐标就可以引用到common.jar...解决办法是在parent项目的pom文件中使用将springmvc.jar管理起来,如果有哪个子项目要用,那么子项目在自己的...这样springmvc.jar的版本发生变化时只需要修改parent中的版本就可以了。
即使是长期从事 Maven 工作的开发人员也不能完全掌握聚合(多模块)和 Parent 继承的关系,在使用多模块时,子模块总要指定聚合的 pom 为 parent>。...由于在大多数示例中都是这么写的,所以很难让人搞懂这两者的具体作用和关系。 实际上在 Maven 中聚合(多模块)和继承是两回事,两者不存在直接联系。...index.html 继承 继承是 Maven 中很强大的一种功能,继承可以使得子POM可以获得 parent 中的各项配置,可以对子pom进行统一的配置和依赖管理。...聚合(或多模块) 具有模块的项目被称为多模块或聚合项目。模块是此POM列出并作为一组执行的项目。通过一个pom打包的项目可以将它们列为模块来聚合成一组项目进行构建,这些模块名是这些项目的相对目录。...父POM是为了抽取统一的配置信息和依赖版本控制,方便子POM直接引用,简化子POM的配置。
用了 Maven 好几年了,许多人还是只懂得简单的依赖坐标。对于 Maven 的聚合和继承还是一知半解,甚至很多人以为是同一个东西。但其实聚合是用于快速构建项目,是表示项目与子项目之间的关系。...在 Maven 中我们通过 modules 元素来表示模块之间的关联关系。 在 Maven 的聚合关系中,聚合项目知道哪些项目是它的子项目,但是那些被聚合的项目并不知道其被哪个模块聚合了。.../mailmodule> 继承 Maven 的继承是为了消除重复配置而存在的。...这个时候就可以将共同的依赖写在父类模块中,让子类继承这些依赖。 例如 taobao-parent 是 mail 模块和 account 模块的父模块,他们都需要 junit 测试依赖包。...从上面可以看到多模块 Maven 项目中的聚合与继承其实是两个概念,其目的是完全不同的。
--子工程中声明对父工程的引用 --> parent> com.ys.maven Parent.../Parent/pom.xml parent> ③、将子工程的坐标中与父工程坐标重复的内容删除(不删除也可以,为了简洁) ? ...我们在用Maven 管理项目的时候,通常为创建多个 Maven 工程,也就是一个项目的多个模块。但是这样分成多个模块了,当我们进行项目打包发布的时候,那么要每一个模块都执行打包操作吗?...第一步:创建聚合工程(注意聚合工程的打包方式也必须为 pom,通常由 上面所讲的父工程来充当聚合工程) ? 第二步:创建子工程:业务层 ①、选择 Maven Module ? ...第三步:创建子工程:表现层和持久层 创建步骤和前面一样,注意表现层打包方式我们要选择 war,因为要发布到 tomcat 容器运行。
--引入父模块, parent标签可以理解为java中的继承关系-->parent> 父类 groupId 父类 artifactId...,maven 会自动按照依赖顺序为你打包modules 中的 module 标签作用:modules 只能在模块的打包方式是 pom 的时候才能使用,比如 packaging 设置为 pom,modeule...标签中的名称是其他模块 artifactId 名称,无论该模块是否打包方式为 pom 模块的子模块,都是可以的;在对父模块进行 mvn clean install 的时候,所有在 module 标签中的模块都会自动按照模块之间的依赖顺序进行...module 标签吗,我认为是可以的,因为 module 标签的作用在上面 2 中已经说明了,所以它只和打包方式为 pom 的模块进行 mvn clean install 的时候有关,也就是说只和开发的时候...以下是 Git 的一些核心概念和功能:分布式版本控制:与集中式版本控制系统(如 SVN)不同,Git 允许每个开发者拥有完整的代码库副本,包括完整的历史记录。
ssl证书是根据域名来签发的,申请ssl证书首先肯定要提供域名,而域名是解析到ip地址上的,那么究竟ssl证书是和域名绑定的还是和ip地址绑定的呢? ...以前有人听说生成证书时可以用IP地址,认为如果没有域名也可以绑定IP,两者有一个就可以申请,其实用ip地址绑定ssl证书时是会报错的,ssl证书是不能直接和ip地址绑定的。 ...一个ssl证书是可以绑定多个域名的。这样一来就可以避免购买多个ssl证书的费用了。...多域名型ssl证书是指可以在一个证书中绑定多个不同的网站域名,比较适合中小型企业,有好几个站点只需要购买一张ssl证书即可。 ...所以当用户拥有多个域名或者多个子域名的网站,并希望通过一个ssl证书来保护所有域名,那么多域名型ssl证书和通配符型ssl证书是最佳的选择了,因为多域名和通配符ssl证书既能保护多个域名网站,同时也能保护多个子域名网站
Maven给插件就定了契约,这个契约,是通过api jar包的方式。每次发布Maven新版本,与之伴随的,都会有一个api jar包。...之后,当然是反射生成对象,然后强制转换为契约接口,然后调用契约接口就行。...工程实践 我们会模拟上面的过程, 建一个Maven module,用来存放插件api契约接口; 建一个Maven module,引入api,实现插件api,这样,我们的插件就算是实现好了; 接下来,把这两个工程编译一下...,这个classloader的parent classloader,我们传的是,系统的AppClassloader。...https://gitee.com/ckl111/maven-3.8.1-source-learn 我这边给大家展示下,执行结果: 大家看看,这像话吗,明明我的插件代码里,是实现了接口的,怎么就不能向上转型呢
步骤1:创建一个空的Maven项目并将其打包方式设置为pom 因为这一步和前面maven创建聚合工程的方式是一摸一样,所以我们可以单独创建一个新的工程,也可以直接和聚合公用一个工程。...实际开发中,聚合和继承一般也都放在同一个项目中,但是这两个的功能是不一样的。...pom,可以将两种关系制作到同一个pom文件中 聚合与继承均属于设计型模块,并无实际的模块内容 聚合和继承的不同点: 聚合是在当前模块中配置关系,聚合可以感知到参与聚合的模块有哪些 继承是在子模块中配置关系...,父模块无法感知哪些子模块继承了自己 IDEA构建聚合与继承工程 相信到这里,大家已经能区分开什么是聚合和继承,但是有一个稍微麻烦的地方就是聚合和继承的工程构建,需要在聚合项目中手动添加modules标签...图片 创建成功后,maven_parent即是聚合工程又是父工程,maven_web中也有parent标签,继承的就是maven_parent,对于难以配置的内容都自动生成。
spring-test 只在 ssm_crm 和 ssm_goods 中出现,而在 ssm_order 中没有,这里是部分重复的内容 我们使用的 spring 版本目前是5.2.10.RELEASE..._02_ssm 和 maven_04_dao 这两个项目中的 junit 版本就会跟随着父项目中的标签 dependencyManagement 中 junit 的版本发生变化而变化。...继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己 相信到这里,大家已经能区分开什么是聚合和继承,但是有一个稍微麻烦的地方就是聚合和继承的工程构建,需要在聚合项目中手动添加modules...标签,需要在所有的子项目中添加parent 标签,万一写错了咋办?...创建成功后,maven_parent 即是聚合工程又是父工程,maven_web 中也有 parent 标签,继承的就是 maven_parent,对于难以配置的内容都自动生成。
作用 在本地的pom文件配置好之后,执行deploy命令,可以将maven所打的jar包上传到远程的repository,便于其他开发者和工程共享。...注意事项 一般继承 parent 的version会按照如下格式写: parent> module.some module_parent ${parent.version} parent> 这样写方便统一管理版本信息...,但发布到maven私服之后,maven 会试图下载 module_parent 的 ${parent.version} 的 jar。...显然,这个jar是不存在的。那么为什么已经指定了 parent.version 的值了却没有解析呢?这是因为deploy 的过程中,parent 标签里的变量是不会解析的,必须是一个常量。
model 主要注意 parent> multi-module标签,这里先不做解释,这个是打包用的 4.打jar包 刚才上文提到的 ...> 为什么出现在web的pom文件中,因为启动类在web里面,所以把build标签以及里面内容放进了...web的pom文件中 下面看一下web的目录结构 ?...如图所示 1.打开idea右侧的Maven Projects ? 2.双击 ? 3.运行 ? java -jar XXXX.jar
简述 项目中通过maven集成 springboot 有两种方式: 继承parent 方式 非继承 parent 方式 上一篇文章已经介绍过通过直接继承springboot项目座标的方式继承,这次说明如何通过非直接继承的方式构建...非parent 方式 推荐使用这种方式。 这样就可以使子项目使用 parent 标签了。...parent 项目配置 添加一个 spring boot 依赖,dependencyManagement 中的 springboot 就是核心,是springboot 官方提供的依赖,它是一组springboot...type 是 pom,scope 是 import,这种类型的 dependency 只能在 dependencyManagement 标签中声明。 childrenmodule> module>parentmodule> maven.compiler.source
maven package和maven install 有什么区别? 你常用的maven命令有哪些? 是干什么的? 还有用过其它构建工具吗?...和maven有啥区别? 1.Maven是啥: Maven是Apache软件基金会唯一维护的一款自动化构建工具,专注于服务Java平台的项目构建和依赖管理。.../Parent/pom.xml parent> 此时如果子工程的 groupId 和 version 如果和父工程重复则可以删除。...在父工程中管理依赖 将 Parent 项目中的 dependencies 标签,用 dependencyManagement 标签括起来 Maven 工程的安装、清理工作。 如何配置聚合?在总的聚合工程中使用 modules/module 标签组合,指定模块工程的相对路径即可 <!
Maven和Tomcat能有啥联系呢,都穿打补丁的衣服吗 1、启动类 2、maven core 3、插件代码 maven clean时,到底发生了什么(插件被框架核心执行阶段) 1、启动时的加载器-AppClassloader...插件,是要让主框架来执行的,主框架是谁呢,就是maven core,可以称之为maven核心吧。...maven和tomcat的相似之处 下边,我们看maven的jar包的分散情况。...这里,大家可以想想启动类的目标是啥,是要去加载框架核心。对于启动类来说,重点在于:框架类的代码在哪里呢?是靠默认约定吗,还是读一个什么配置文件。 答案就是配置文件。...: 框架核心做了啥,就是加载org.apache.maven.plugin.clean.CleanMojo,然后强制向上转型成Mojo,然后优雅地用多态来执行execute方法,调用插件的实际逻辑即可
步骤 Maven使用总结 依赖范围 maven创建的工程的目录中包含main和test文件夹,分别表示主程序的文件夹和测试程序的文件夹 maven使用scop设置依赖范围,常用的依赖范围如下:...我们可以使用标签来管理,新的配置文件如下: properties中的标签体可以任意指定,如果需要引用定义的标签体中的内容,那么直接使用${标签体}即可 此时我们要是改变版本,那么只需要改变...标签指定声明对父工程的引用 parent> cn.tedu Hello-Parent 0.0.1.../Hello-Parent parent> 将子工程坐标和父工程坐标重复的地方删除,不删除也没关系 在子工程中删除junit的version标签,表明是继承自父工程的版本...-- 使用聚合的方式 --> module>../Hello-Parentmodule> module>..
Maven deploy 怎么配置 在本地的pom文件配置好之后,执行deploy命令,可以将maven所打的jar包上传到远程的repository,便于其他开发者和工程共享。...注意事项 一般继承 parent 的version会按照如下格式写: parent> module.some module_parent... ${parent.version} parent> 这样写方便统一管理版本信息,但发布到maven私服之后,maven...会试图下载 module_parent 的 ${parent.version} 的 jar。...显然,这个jar是不存在的。那么为什么已经指定了 parent.version 的值了却没有解析呢?这是因为deploy 的过程中,parent 标签里的变量是不会解析的,必须是一个常量。
通过第二个 Maven 工程我们已经看到, 当前工程会到本地仓库中根据坐标查找它所依赖的 jar 包。配置的基本形式是使用 dependency 标签指定目标 jar 包的坐标。...,并且为部署做准备 site-deploy 将生成的站点文档部署到特定的服务器上 这里经常用到的是 site 阶段和 site-deploy 阶段,用以生成和发布 Maven 站点,这可是 Maven.../Parent/pom.xml parent> 此时如果子工程的 groupId 和 version 如果和父工程重复则可以删除。...3、在父工程中管理依赖 将 Parent 项目中的 dependencies 标签,用 dependencyManagement 标签括起来 junitjunit4.9test 在子项目中重新指定需要的依赖...1、配置聚合 在总的聚合工程中使用 modules/module 标签组合, 指定模块工程的相对路径即可 module>..
maven多模块和依赖冲突问题汇总记录 目录 maven多模块和依赖冲突问题汇总记录目录前言:idea怎么创建maven多module的项目首先了解上面是多module?...命令 前言: 今天学习和总结了一下maven的相关知识点,发现一些比较基础的东西居然也会忘记,这里对于一些日常工作中可能会遇到的问题进行了一下汇总。...idea怎么创建maven多module的项目 首先了解上面是多module? 一句话概括就是:一个父模块作为版本控制多个子模块,子模块负责接入到父模块当中作为整个项目的过程。...在下面的pom中可以在任意的子模块引入对应的父模块依赖 注意由于parent>这个标签会递归继承,所以要注意子依赖不要和依赖引入不同版本的依赖,这样容易造成冲突 ...如何解决依赖冲突的问题 锁定版本法 一般情况下我们会在父pom文件里面管理,可以使用这个这个标签来管理所有子模块的版本依赖,子模块如果指定自己的版本,这里发现打出来的包依然是父
领取专属 10元无门槛券
手把手带您无忧上云