Maven 聚合项目搭建

本贴最后更新于 1393 天前,其中的信息可能已经时异事殊

Maven 聚合项目搭建

image.png

项目准备:

环境:jdk1.8 && maven:latest
编辑器:# Intellij IDEA

具体操作

File->New->Project->Maven
image.png
NEXT
image.png
写好项目名称和包名等基本设置->FINISH
image.png
此时 pan-study 是聚合工程最外层也就是主工程。所以打包方式得是 pom 来告诉 maven,这是一个父工程。
一般来说所有的父级项目的 packaging 都为 pom,packaging 默认类型 jar 类型,如果不做配置,maven 会将该项目打成 jar 包。
image.png
点击选中项目名->New->Module
image.png
直接 Next,然后配置好子工程名称
image.png
FINISH
image.png
项目模块结果和 pom 文件对比

父子工程依赖关系

1. 聚合工程里可以分为顶级项目(顶级工程、父工程)与子工程,这两者的关系其实就是父子继承的关系
子工程在maven里称之为模块(module),模块之间是平级,是可以相互依赖的。
2. 子模块可以使用顶级工程里所有的资源(依赖),子模块之间如果要使用资源,必须构建依赖(构建关系)
3. 一个顶级工程是可以由多个不同的子工程共同组合而成。

接下来同理且相同操作构建 api,pojo,mapper,service 四个子工程。
image.png
构建子模块依赖关系
例如 pojo 依赖 common
image.png
当 pojo 依赖了 common,此时 mapper 再依赖 pojo,那么 mapper 就相当于同时依赖 pojo 和 common。
image.png
最终达到这样的依赖结构

api -> service -> mapper -> pojo -> common

image.png
最后安装聚合工程(没安装前,子模块不能配合父模块使用)
IDEA 右侧选择 Maven-> 父工程->Lifecycle->install
image.png
提示 BUILD SUCCESS 即安装成功
image.png

聚合工程整合 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 文件
image.png
在 java 文件下创建一个包然后建一个 Applictian 类
image.png
启动类编写

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}

创建 controller 层的 HelloController 做测试
image.png

@RestController//默认返回出去的是json对象
public class HelloController {

    @GetMapping("/hello")
    public Object hello() {
        return "Hello World!";
    }

}

最后去 maven 里 install 一下,再在启动类里启动
image.png
在控制台可以看到启动成功后项目的端口(默认为 8080)
image.png
在浏览器输入对应 url 测试是否整合成功
http://localhost:8080/hello
image.png

  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    185 引用 • 318 回帖 • 353 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    938 引用 • 1456 回帖 • 163 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...