因为最近有人问过一些朋友,所以我想和所有人一起嘲笑Maven项目中代码的组织形式的问题。
实际上,这不是一个大问题,但是如果您不明白,那就像看雾中的花朵一样。很明显,您没有看到它。它就像一层窗纸。
因此,让我们简要介绍一下。
首先,让我们谈谈代码组织表格。
一般来说,还有两种常见的形式:
这两种形式的歌曲在不同的项目中遇到,因此我们不说它们是好是坏,只是这两种解决方案。
平板电脑代码类似于以下内容:
如下所示:
可以看出,在这种结构下,父母工程和每个子工程在代码组织方面都是平坦的,均在同一目录中。
但是,如果您仔细查看pom.xml文件,您仍然可以清楚地看到这三个模块之间的父亲 - 森关系:
父:
可以看出,当指定模块时,VHR-DAO和VHR服务的pom.xml不在同一目录中,因此这里使用了相对路径。相对路径的参考基础是父pom.xml文件的位置。
VHR-DAO:
可以看出,在相对路径节点中,pom.xml文件位置由相对路径指定。此相对路径的参考基础是子模块的pom.xml文件。
VHR服务:
这与VHR-DAO几乎相同,不会详细介绍。
父亲和儿子的结构类似于以下内容:
如下所示:
这种父亲的结构看起来非常分层。父母和每个模块都可以看见。我们从Github下载的许多开源项目,例如Shiro,都是这些结构。
但是,文件夹的级别不能解释任何问题。关键是查看pom.xml的定义。接下来,让我们看一下父pom.xml与每个子模块的pom.xml之间的差异。
maven_parent:
与上一个不同的是,这里有一个说明,即模块不需要相对路径(实际上,相对路径,但不需要),因为每个顺式和父母的pom.xml文件都在同一目录中。
VHR-DAO:
无需指定pom.xml文件位置来指定父pom.xml文件,因为pom.xml和父级的每个提交模块都在同一目录中。
VHR服务:
有时,我只想通过父母统一不同项目的依赖关系,而不是一个汇总项目。
目前,您只需要删除parent pom.xml中的模块节点和内容,以便它不是一个聚合项目,并且每个子模块都可以独立打包。
当然,我们正在汇总项目。
通常,对于聚合项目,Song Brother建议您从父母那里打包:
这可以确保包装最新的代码。
当然,还有另一个操作过程:
如果使用此操作过程,则需要注意它,也就是说,在更新每个模块代码后,有必要及时将其安装到本地仓库。否则,当独立打包Web模块时,使用的其他模块不是最新的代码。
好吧,一些小问题中的小问题,窗纸破碎了,突然被打开?