网站首页 > 精选教程 正文
当我们从spring官网下载quickstart的例子时,它其实是一个单模块的maven项目,可以用来学习,但是真正用于企业级生产应用,我们还得稍微改造成多模块结构。最常见的例子是你如果从网上找一些开源项目,导入maven工程之后,你会发现这项目结构都是按照模块很清晰的分层:接口模块、数据库模块、业务模块等等,如果有十几甚至几十个模块的话,如果整个项目编译是否需要一个一个的去构建,能否通过一个配置文件帮你进行所有的编译操作?这就是今天要分享的内容:构建一个企业生产的开发项目基础框架。
你需要一个父模块
maven在于统一所有的项目结构,实行约定大于配置,所以不用在乎开发工具,我这里用的最新版的eclipse,如果用别的工具,原理一致。
(1)首先,通过eclipse新建maven项目,工程名叫test-parent,作为父项目,用于管理所有子项目。
(2)然后一路next,然后需要填写groupid(一般是组织名),artifactid(项目名),这里根据项目实际情况填写即可。
(3)点击结束之后,会生成一个以下这样的结构。我们需要进行以下简单的改造,直接删除src目录;默认编译jre为1.5,自行更改jdk版本,我这里安装了最新的jdk,所以改为jdk12。最后在pom文件中更改项目的打包方式为pom。
最后整体父模块构建效果如下图,
在父模块下建子模块
(1)增加第一个模块,起名为test_service,该模块实现业务功能。
(2)增加第二个模块,起名为test-web,该模块是个web应用,用于在web端展示结果。
(3) 增加第三个模块,起名test_db,该模块负责数据库部分
正常情况下,eclipse会自动在父模块的pom文件中增加 3个项目为子项目,然后修改各个项目的jdk版本为jdk12。
<modules> <module>test_service</module> <module>test-web</module> <module>test_db</module> </modules>
到此为止,项目基本框架完成,
现在已经可以通过parent模块的pom文件统一构建所有的子模块项目,你只需在pom,右键点运行
最终如图:
你的父项目就包含了所有的子项目。构建就完成了。
如何管理jar包依赖
我们拿springboot做例子,这个统一在parent模块中维护springboot的版本及依赖,其它模块进行依赖共享。在pom文件中加入相关依赖,在属性中定义一个springboot版本号,这样在所有子模块中就可以共享一个版本号,以后升级非常方便。
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.9.RELEASE</version> <relativePath /> </parent> <properties> <springboot.version>2.1.9.RELEASE</springboot.version> </properties>
子模块自动继承父模块的jar包,成为springboot项目。为更好管理jar的版本号,在父项目的pom文件中做些修改,统一在properties中定义版本号,增加dependencyManagement节点。这样在子模块中只需引入依赖包,不再需要指定版本号,达到一点修改的目的。看例子:
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> <version>${springboot.version}</version> </dependency> </dependencyManagement>
我们定义了一个rest的jar包,假设我们只在模块test_web中使用,那么在test_web模块下的pom文件中引入
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> <version>${springboot.version}</version> </dependency>
总结
以上就初步构建了一个企业生产中的一个最基本的架构,可以通过父模块管理所有的子模块,一站式构建。
猜你喜欢
- 2024-11-03 java的构造方法你知道几种? java的构造方法你知道几种类型
- 2024-11-03 Spring 体系常用项目一览 spring系列
- 2024-11-03 Java互联网架构-项目流程管理(总结)
- 2024-11-03 优秀的 Java 项目代码都是如何分层的?
- 2024-11-03 Flink实战:01.创建项目结构 flink create view
- 2024-11-03 计算机等级考试辅导:Java类的基本组成和使用单元辅导文档
- 2024-11-03 一篇文章带你了解Java构造方法的定义和重载
- 2024-11-03 Java三大结构是什么?Java程序员进阶知识点
- 2024-11-03 Maven学习总结–使用Maven构建多模块项目
- 2024-11-03 JAVA分布式架构完整知识体系 java分布式入门
你 发表评论:
欢迎- 04-11Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- 04-11Java中你知道几种从字符串中找指定的字符的数量
- 04-11探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- 04-11Python字符串详解与示例(python字符串的常见操作)
- 04-11java正则-取出指定字符串之间的内容
- 04-11String s1 = new String("abc");这句话创建了几个字符串对象?
- 04-11java判断字符串中是否包含某个字符
- 04-11关于java开发中正确的发牌逻辑编写规范
- 最近发表
-
- Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- Java中你知道几种从字符串中找指定的字符的数量
- 探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- Python字符串详解与示例(python字符串的常见操作)
- java正则-取出指定字符串之间的内容
- String s1 = new String("abc");这句话创建了几个字符串对象?
- java判断字符串中是否包含某个字符
- 关于java开发中正确的发牌逻辑编写规范
- windows、linux如何后台运行jar(并且显示进程名)
- 腾讯大佬私人收藏,GitHub上最受欢迎的100个JAVA库,值得学习
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)