Maven 聚合项目搭建
项目准备:
环境:jdk1.8 && maven:latest
编辑器:# Intellij IDEA
具体操作
File->New->Project->Maven
NEXT
写好项目名称和包名等基本设置->FINISH
此时 pan-study 是聚合工程最外层也就是主工程。所以打包方式得是 pom 来告诉 maven,这是一个父工程。
一般来说所有的父级项目的 packaging 都为 pom,packaging 默认类型 jar 类型,如果不做配置,maven 会将该项目打成 jar 包。
点击选中项目名->New->Module
直接 Next,然后配置好子工程名称
FINISH
项目模块结果和 pom 文件对比
父子工程依赖关系
1. 聚合工程里可以分为顶级项目(顶级工程、父工程)与子工程,这两者的关系其实就是父子继承的关系
子工程在maven里称之为模块(module),模块之间是平级,是可以相互依赖的。
2. 子模块可以使用顶级工程里所有的资源(依赖),子模块之间如果要使用资源,必须构建依赖(构建关系)
3. 一个顶级工程是可以由多个不同的子工程共同组合而成。
接下来同理且相同操作构建 api,pojo,mapper,service 四个子工程。
构建子模块依赖关系
例如 pojo 依赖 common
当 pojo 依赖了 common,此时 mapper 再依赖 pojo,那么 mapper 就相当于同时依赖 pojo 和 common。
最终达到这样的依赖结构
api -> service -> mapper -> pojo -> common
最后安装聚合工程(没安装前,子模块不能配合父模块使用)
IDEA 右侧选择 Maven-> 父工程->Lifecycle->install
提示 BUILD SUCCESS 即安装成功
聚合工程整合 springboot
父工程 pom 文件里添加对应依赖
1.引入依赖 parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
<relativePath />
</parent>
2.设置资源属性
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
3.引入依赖 dependency
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
在 api 子工程里创建 yml 文件
在 java 文件下创建一个包然后建一个 Applictian 类
启动类编写
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
创建 controller 层的 HelloController 做测试
@RestController//默认返回出去的是json对象
public class HelloController {
@GetMapping("/hello")
public Object hello() {
return "Hello World!";
}
}
最后去 maven 里 install 一下,再在启动类里启动
在控制台可以看到启动成功后项目的端口(默认为 8080)
在浏览器输入对应 url 测试是否整合成功
http://localhost:8080/hello
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于