maven多模块项目

Maven环境下构建多模块项目 如果没有指定,就会默认使用该依赖范围。使用此依赖范围的Maven依赖, 对于编译,测试,运行都有效。使用此依赖范围的Maven依赖,对于编译和测试有效, 但在运行时无效。使用此依赖范围的Maven依赖,对于测试和运行有效, 但在编译代码时无效。Maven会解析各个直接依赖的POM,将那些必要的间接依赖,以传递性依赖的形式引入到当前项目中。1. groupId, artifactId, version : 依赖的基本坐标, 对于任何一个依赖来说,基本坐标是最重要的, Maven根据坐标才能找到需要的依赖。 阅读详情

step1. 新建父级项目:

新建springboot项目,删除src文件夹,父项目pom文件中加载的依赖在所有子项目中都可以使用:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.xqnode</groupId>
    <artifactId>maven-multi</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--jpa-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
    </dependencies>

    <build>
        <finalName>maven-multi-${version}</finalName>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

step2. 新建子项目dao、web和service

在这里插入图片描述
新建三个子模块,都是maven项目,名称分别是web、service和dao。建完后注意看父模块的pom文件中引入了子模块的module:

<modules>
	<module>web</module>
	<module>dao</module>
	<module>service</module>
</modules>

我们在使用子项目的时候记得要引入需要的其他子模块的依赖,例如在web模块中引入service模块,这样才能正常使用:


<dependency>
    <groupId>com.xqnode</groupId>
    <artifactId>service</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

同理,在service模块我们需要引入dao的依赖:

<dependency>
    <groupId>com.xqnode</groupId>
    <artifactId>dao</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

完成后的工程目录是这样的:
在这里插入图片描述
至此maven多模块的配置就已经完成。我把一个完整的项目拆分成3个子项目来分别开发。下面开始验证项目是否可以正常运行。

step3. 验证结果

我在web模块的resources文件夹中加入配置文件,在其外部加入启动类,让项目可以启动起来:
在这里插入图片描述
启动类是一个简单的springboot项目:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

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

配置文件参考:

server:
  port: 8001
spring:
  jpa:
    hibernate:
      ddl-auto: none
    show-sql: false
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/mytest?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
    driver-class-name: com.mysql.cj.jdbc.Driver

启动项目:
在这里插入图片描述
看到这里,我们就验证成功了,项目正常运行,我写了一个接口测试下:

import com.xqnode.model.JsonResult;
import com.xqnode.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/findAll")
    public JsonResult findAll() {
        return JsonResult.dataResult(userService.findAll());
    }
}

访问接口:
http://localhost:8001/user/findAll
返回数据:
在这里插入图片描述

接口结果也是正常的。说明我们的maven多模块项目配置成功。大家可以去码云上看看优秀的java开源项目,很多都是使用多模块配置的,很有参考价值。

Maven多模块项目经验 最近被一个多模块项目搞的头晕眼花,最后经过多次摸索终于发现了如何使用maven来创建多模块的项目。现在把一些经验和教训总结一下供后来人借鉴和指教。 maven的作用 毋庸置疑,maven是用来创建一个项目的基本构架以使得这个工程可以方便的重复构建。 maven的生命周期 谈到项目,不得不提到一个基本项目的生命周期,也就是说在项目被maven打包成jar, war等等不同的包装的时候 阅读详情

相关推荐

eclipse导入SVN上的Maven多模块项目

一、SVN上Maven多模块项目结构 使用eclipse导入SVN上的Maven多模块项目 Maven多模块项目所在SVN目录 二、eclipse通过SVN导入到工作空间 工作空间位于F:/HPCWorkspace 2.1 File->Import,选择从SVN检出项目下载  2.2 选择/新建SVN资源库位置 如果资源库还没创建好,选择创建新的资源库位置,如果已经创

nomoneyhua的博客 1万+

通过命令运行 maven 多模块项目

介绍 Maven如何通过 mvn 命令行直接运行 main 方法.使用 IDE 开发时, 我们都会直接运行 main 方法, IDE 会负责编译依赖模块和 main 方法所在的模块, 最后运行.把代码拷贝上去有很多办法, 不在本文讨论范围了, 这里简单介绍一下因为讨论的是一个多模块项目, 因此网上常见的命令无法正常工作, 它能很好的用于单模块应用, 但不能很好用于多模块项目.在实践中, 我肯定会尽可能优先使用这种方式!repackage下面, 我展开介绍基于的办法.

1057

创建maven多模块项目的实战演练

本文还有配套的精品资源,点击获取 简介:Maven作为Java开发的构建工具,采用标准目录结构和XML配置文件(pom.xml)管理项目构建。在大型项目中,多模块结构有助于提高模块化、复用性和可维护性。本文实例演示了如何创建一个基于SSM框架的简单maven多模块项目,并详细介绍了模块间关系、继承以及如何通过Maven命令管理项目构建。 1. Maven介绍及构建...

weixin_28939623的博客 895

maven多模块项目安装及使用

maven多工程项目安装管理   一、         检查JDK安装   建议安装jdk1.8   二、         Maven下载安装 下载地址:http://maven.apache.org/download.cgi 1.    安装 直接解压缩到D:\apache-maven-3.2.3-bin 2.    配置环境变量 应用 windows键+Pause B

dahaigegege的专栏 7457

招聘网站项目jsp+servlet.zip

招聘网站项目,该系统采用MySQL数据库,采用经典的JSP+Servlet框架,通过ajax技术。包含登陆网站,插入用户信息。

XQ-2W模块资料(2.4G 2W WIFI).pdf

XQ-02A 双向信号放大模组专为 2.4GHz 频段各类应用而设计,其外形小巧, 傻瓜式应用方式,使得 2.4GHz 无线产品射频部分设计变得极其简单,极大地缩 短产品开发周期并降低产品开发成本! 主要应用于各类对 Wi-Fi 信号传输距离和连接稳定性有特殊要求的场合, 如: 广告机、无线网络播放器、无线路由器(AP)、无线网卡、无线网络摄像头等均 可与之配合使用; 也可应用于 Zigbee 无线数据采集领域,与 Zigbee 设备配合可大大增强 Zigbee 物联网信号覆盖范围。

Maven多模块项目开发实践

Maven多模块项目是指将一个大的项目拆分成多个模块,每个模块负责一个特定的功能。这种拆分有助于降低项目间的耦合,提高代码的可维护性和可重用性通过本篇博客的学习,我们深入了解了Maven多模块项目开发的要点和步骤。多模块项目通过模块化拆分,不仅提高了代码的复用性和可维护性,而且有助于管理大型项目的复杂性。项目结构:理解多模块项目的目录结构,以及如何组织不同的模块。父模块配置:父模块的pom.xml中定义了项目整体的版本号、依赖管理和插件配置,同时通过<modules>标签管理子模块。子模块配置。

qq_65850082的博客 864

雪莉果的Axure原型工厂vol.006 中继器应用(二)——多选穿梭框

如果你用axure有一段时间了,那么你很快就能琢磨出一个大体设计流程,比如加一个中间过度的元件,来储存需要穿梭的内容;但是如果你再想一想,就会发现,这样做,似乎只能解决单选,那么多选需要怎么操作呢? 这时候,中继器就会告诉你,我还能做的更多。

weixin_43829792的博客 976

maven聚合工程

直接上图:父工程pom.xml配置:&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache....

qq_40757662的博客 200

第4课 SiC MOSFET的动态特性——关断过程

本文分析了SiC MOSFET的关断过程,将其划分为四个阶段:栅源电容放电阶段(t6-t7)、米勒平台阶段(t7-t8)、电压过冲阶段(t8-t9)和换流结束阶段(t9-t10)。通过等效电路详细描述了各阶段的电压电流变化特点。同时探讨了MOSFET的极间电容特性,包括输入电容Ciss、输出电容Coss和反向转移电容Crss,分析了它们对器件开关速度、损耗及电压变化速率的影响。研究指出这些非线性电容会显著影响器件的动态性能。

嵌入式老牛的博客 1043

2025华为杯第二十二届中国研究生数学建模竞赛D题:低空湍流监测及最优航路规划 - 完整解题分析+完整MATLAB源码!(下篇)

🎓 本文收录于 《滚雪球学数学建模》专栏,本专栏专注于从零基础出发,带你循序渐进掌握数学建模的核心方法与思维路径。通过“滚雪球式”学习法,从最简单的生活化案例到经典建模工具,再到省赛、国赛真题实战演练,逐步积累知识与技能,帮助你搭建完整的建模体系。无论你是刚接触建模的新生,还是希望提升科研与竞赛能力的学者与工程师,本专栏都将为你提供一条清晰、高效、可实操的建模成长路线,助力你快速进阶,突破难点,迈向数学建模竞赛与实际应用的更高峰 🚀!

**My Coding Family** 1621

Maven 管理多模块应用

目录1.创建 Maven 工程1 ) 选择 Maven ,点击“Next ”下一步2 ) 设置项目坐标 设置项目坐标 ,点击“Next3 ) 设置项目名称和项目存放位置 ,点击“Finish ”4 ) 配置导入设置2. 将 maven 工程修改为父工程1 ) 设置 packaging 标签的内容2 ) 删除 src 目录 3. 父工程添加编译插件 4.创建子模块1)选择 New Module2)选择 maven 项目 3)设置子模块坐标4)设置模块名称及存放位置 5. 项目视图6.添加依赖1)添加

小鲁蛋的博客 1650

Linux系列:SecurtCRT中的密码如何找回

【代码】Linux系列:SecurtCRT中的密码如何找回。

NIO4444 1084

【Maven】多模块项目的构建

本文详细讲解了Maven多模块项目的构建流程。

m0_46308522的博客 1446

微博scheme

微博scheme

qq_42278595的博客 318

NeRF-Pytorch(训练自己的数据集过程全记录+环境配置+COLMAP+问题解决)

写于2025/1/26,在用NeRF训练自己的数据集过程中该踩的坑都踩过了,发现网上并没有详细完整写这些问题解决过程的帖子,遂自己进行一个全记录和复盘。 整篇文章包括:NeRF训练环境配置;COLMAP三维重建过程(直接给出代码,规避一些bug);在训练时候出现的问题。 本篇文章仅针对llff格式数据集。

m0_62577716的博客 1774

Maven项目多模块拆分

使用Java技术开发的

北海飞舞 1万+

LLM制造业最佳实践:基于大语言模型处理最优化问题,制造业如何更优排产,提升资源利用率

随着制造业数字化转型加速,生产排产优化成为提升企业效率和竞争力的关键环节。大语言模型(LLM)凭借其强大的多模态数据处理、动态优化和智能推理能力,在复杂排产场景中展现出独特优势。谷歌、DeepSeek等机构的研究表明,LLM可通过自然语言交互和生成式决策,突破传统优化算法的局限性。本报告结合半导体行业实践案例与技术路径,系统分析LLM在排产优化中的应用潜力与挑战。

shiter编写程序的艺术 939

Maven之多模块项目管理

随着功能迭代,大型Java项目代码量和依赖关系会变得复杂,将项目拆分为多个模块,通过Maven进行统一管理,能显著提升代码复用性和可维护性。本文我将详细讲解Maven多模块项目的设计原则、创建流程、依赖管理及实战技巧,带你掌握多模块项目的核心管理方式。

aa_hdkf_vg的博客 1637

毕设加分项!手把手教你完成基于YOLOv8与PyQt5的多类别目标检测系统——让你的毕设从“完成”到“出色”

从KITTI数据集处理,到YOLOv8模型训练,再到PyQt5界面开发,整个流程其实没有想象中那么难。只要你跟着步骤一步步来,不仅能顺利完成毕设,还能掌握目标检测和GUI开发的核心技能——这些技能在未来的求职、读研中都非常实用。如果过程中遇到问题,别担心!可以去YOLOv8的官方文档、PyQt5论坛找答案,也可以和同学、老师交流。记住,完成毕设的过程也是你技术成长的过程,坚持下去,你会为自己的成果感到自豪。

m0_71589036的博客 178

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

使用 Maven 构建多模块项目

一、概述 在本教程中,我们将学习如何使用 Maven 构建多模块项目。 首先,我们将讨论什么是多模块项目,并看看遵循这种方法的好处。然后我们将设置我们的示例项目。有关 Maven 的良好介绍,请查看本教程。 2. Maven的多模块项目 多模块项目由管理一组子模块的聚合器 POM 构建。在大多数情况下,聚合器位于项目的根目录中,并且必须具有pom类型的打包。 子模块是常规的 Maven 项目,它们可以单独构建,也可以通过聚合器 POM 构建。 通过聚合器 POM 构建项目,每个具有与p.

allway2的博客 8275

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【 Maven 】花式玩法之多模块项目

Maven 通过使用插件和配置文件来定义项目的发布策略。项目的发布策略包括了构建、版本管理、部署和发布等方面的规则和流程。下面介绍一下Maven中常用的发布策略的定义方式:Maven多模块的发布使得项目的管理、构建和部署更加灵活、高效和可维护。它提供了一种组织和管理复杂应用程序的有效方式,同时也促进了代码的重用和模块的解耦,提高了开发团队的效率和项目的质量。提高了代码结构清晰度、可维护性,加快了部署速度,并促进了代码的复用。希望本文对您有所帮助。如果有任何错误或建议,请随时指正和提出。

2301_79456272的博客 2504

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

一篇解决springBoot+Maven多模块项目

首先:使用maven多模块项目的好处? 1、代码复用 1)比如一个项目的前台服务和后台管理系统,想让他们单独运行,如果划分成两个单独的项目的话,实体类、service、dao等就会产生重复,以前的做法是直接复制过去,但实体类要是改动某些属性的话,两个系统都要改。但如果我们把公共的部分单独提取成一个模块,把前后台系统聚合一块,引用这个公共的模块,就可以避免这个问题。 2、更好的分工 每个人负责一个模...

no problem的博客 5674

eclipse导入maven多模块项目(并显示在同一项目目录下)

111

qq_39380155的博客 4987

多模块 Maven 项目的管理(一)

多模块 Maven 项目的管理(一)

1392
上一篇: jackson设置返回null为空字符串
下一篇: SpringBoot集成swagger-ui以及swagger分组显示
程序员青戈
程序员青戈 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄10年 3万+粉丝 250原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员青戈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值