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

2024-02-21 02:12

本文主要是介绍【 Maven 】花式玩法之多模块项目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、认识Maven多模块项目

二、maven如何定义项目的发布策略

2.1 版本管理

2.2 构建配置

2.3 部署和发布

2.4 依赖管理

2.5 发布流程

三、使用Jenkins持续集成Maven项目

四、总结


 

如果你有一个多模块项目,并且想将这些模块发布到不同的仓库或目标位置,你可以使用Maven的分发管理功能。

通过在父项目的pom.xml文件中配置<distributionManagement>元素,你可以指定不同模块的发布目标。

一、认识Maven多模块项目

Maven 多模块项目是指将一个大型项目拆分为多个模块进行管理和构建的项目结构。每个模块可以独立开发、测试和构建,同时也可以依赖其他模块。这种项目结构有助于提高项目的可维护性、可扩展性和复用性。

Maven 多模块项目的概念和结构包括五个方面:

Maven多模块项目概念和结构

父项目

子模块

目录结构

依赖管理

构建顺序

  • 父项目(Parent Project):通常是多模块项目的最上层,它定义了整个项目的基本配置共享的依赖管理。父项目会包含一个 pom.xml 文件,其中声明了子模块的列表和其他公共配置

  • 子模块(Module):每个子模块代表项目中的一个独立单元,如一个模块、一个组件、一个子系统等。每个子模块都是一个独立的 Maven 项目,有自己的目录结构和 pom.xml 文件。子模块可以相互依赖,形成模块间的关系。

  • 目录结构Maven 多模块项目的目录结构如下所示:

image.png

  • 依赖管理:父项目负责管理所有子模块的依赖关系。在父项目的 pom.xml 文件中,可以声明一组公共依赖和插件,并且子模块可以继承这些配置。这样可以确保子模块之间的依赖版本一致,减少重复配置的工作。

  • 构建顺序:多模块项目的构建顺序由父项目的 pom.xml 文件中的 元素决定。Maven 会按照 <modules> 中声明的顺序依次构建各个子模块,确保构建过程中的依赖关系正确。

二、maven如何定义项目的发布策略

Maven 通过使用插件和配置文件来定义项目的发布策略。项目的发布策略包括了构建、版本管理、部署和发布等方面的规则和流程。

下面介绍一下 Maven 中常用的发布策略的定义方式:

 

2.1 版本管理

Maven 使用语义化版本号(Semantic Versioning)来管理项目的版本。通过在项目的 pom.xml 文件中定义 <version> 元素,可以指定项目的版本号。根据版本号的规则,可以确定发布的策略,如何升级版本、何时发布稳定版本等。

  • 在项目的 pom.xml 文件中,指定项目的版本号:
<version>1.0.0</version>

 

  • 可以使用 Maven Release 插件来管理版本的发布和升级。例如,执行以下命令将项目版本升级为 1.0.1:
mvn release:update-versions -DautoVersionSubmodules=true -DdevelopmentVersion=1.0.1-SNAPSHOT

 

该命令可以在idea直接执行的

image.png

2.2 构建配置

Maven 使用插件来执行各种构建任务,如编译代码、运行测试、生成文档等。通过在项目的 pom.xml 文件中配置插件和执行目标(Goals),可以定义项目的构建策略。可以指定构建的生命周期阶段,以及在每个阶段执行的插件和目标。

  • 在项目的 pom.xml 文件中,配置构建插件和目标:
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><!-- 配置编译参数 --></configuration></plugin></plugins>
</build>

 

  • 可以使用 Maven Surefire 插件执行项目的测试:
 

 

mvn test

2.3 部署和发布

Maven 提供了插件来支持项目的部署和发布到不同的目标环境,如本地仓库、远程仓库、应用服务器等。通过配置插件和目标,可以定义项目的部署策略,包括目标环境的地址、认证信息、部署方式等。

  • 在项目的 pom.xml 文件中,配置部署插件和目标:
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-deploy-plugin</artifactId><version>3.0.0-M1</version><configuration><!-- 配置部署目标环境 --></configuration></plugin></plugins>
</build>

 

  • 可以使用 Maven Deploy 插件将项目发布到远程仓库:
mvn deploy

 

2.4 依赖管理

Maven 使用依赖管理功能来管理项目的依赖库。通过在项目的 pom.xml 文件中定义 <dependencies> 元素,可以指定项目所依赖的外部库和其版本号。可以定义依赖的范围(如编译时依赖、测试时依赖等)、传递性依赖的规则等,以确保项目的构建和发布的稳定性和一致性。

  • 在项目的 pom.xml 文件中,定义项目的依赖库:
<dependencies><dependency><groupId>com.example</groupId><artifactId>my-library</artifactId><version>1.0.0</version><scope>compile</scope></dependency>
</dependencies>

 

  • 可以使用 Maven Dependency 插件来分析项目的依赖关系:
mvn dependency:tree

 

2.5 发布流程

Maven 提供了插件和配置文件来定义项目的发布流程。可以使用插件来执行特定的操作,如打包、压缩、签名等。通过配置文件,可以指定发布的目标、发布前的准备工作、发布后的验证和清理等步骤,以确保发布过程的可靠性和一致性。

  • 在项目的 pom.xml 文件中,配置插件和目标来定义发布流程:
 

 

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>3.3.0</version><configuration><!-- 配置打包和发布的步骤 --></configuration></plugin></plugins>
</build>
  • 可以使用 Maven Assembly 插件来生成发布所需的打包文件:
 

 

mvn assembly:assembly

三、使用Jenkins持续集成Maven项目

注意:使用 Jenkins 持续集成 Maven 项目,是所有的 Maven 项目都可以,不止是多模块的才行

以下是使用 Jenkins 持续集成 Maven 项目的一般步骤:

 

1、确保已经按照上述提到的步骤安装和配置了 Jenkins 服务器。

2、在 Jenkins 的主界面上,点击New Item创建一个新的Jenkins Job

3、输入Job的名称,并选择Freestyle project作为项目类型。

4、在配置页面的General部分,可以设置项目的描述和其他基本信息。

5、在配置页面的Source Code Management部分,选择你的代码仓库,如GitHub或Bitbucket,并配置相关的认证信息。可以选择使用Git、Subversion等版本控制工具。

6、在配置页面的Build Triggers部分,选择适当的构建触发器。常见的触发器包括定时触发器(如每天定时构建)、代码提交触发器(如有代码提交时触发构建)或轮询SCM触发器(定期轮询代码仓库以检查是否有新的提交)。

7、在配置页面的Build Environment部分,选择Maven。这将启用Maven构建环境。

8、配置Maven相关的参数,如Maven版本、Maven选项等。可以指定全局的Maven安装路径或使用自动安装。

9、在配置页面的Build部分,点击Add build step,选择Maven。这将添加一个Maven构建步骤。

10、配置Maven构建的命令,如clean、compile、test等。可以指定需要执行的Maven目标或自定义的命令。

11、在配置页面的Post-build Actions部分,选择适当的操作,如构建报告的存档、发送邮件通知等。可以根据需要添加多个后续操作。

12、点击配置页面底部的Save按钮保存配置。

13、在Jenkins的主界面上,找到你创建的Jenkins Job,并点击Build Now开始构建过程。Jenkins将按照配置的构建步骤执行Maven项目的构建。

14、构建完成后,可以在构建历史记录中查看构建结果和日志输出,进行故障排查和分析。

四、总结

Maven多模块的发布使得项目的管理、构建和部署更加灵活、高效和可维护。它提供了一种组织和管理复杂应用程序的有效方式,同时也促进了代码的重用和模块的解耦,提高了开发团队的效率和项目的质量。提高了代码结构清晰度、可维护性,加快了部署速度,并促进了代码的复用。

希望本文对您有所帮助。如果有任何错误或建议,请随时指正和提出。

同时,如果您觉得这篇文章有价值,请考虑点赞和收藏。这将激励我进一步改进和创作更多有用的内容。

感谢您的支持和理解!

 

这篇关于【 Maven 】花式玩法之多模块项目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/730275

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

SpringBoot项目是如何启动

启动步骤 概念 运行main方法,初始化SpringApplication 从spring.factories读取listener ApplicationContentInitializer运行run方法读取环境变量,配置信息创建SpringApplication上下文预初始化上下文,将启动类作为配置类进行读取调用 refresh 加载 IOC容器,加载所有的自动配置类,创建容器在这个过程