maven 包管理平台-05-multi module 多模块

拓展阅读

maven 包管理平台-01-maven 入门介绍 + Maven、Gradle、Ant、Ivy、Bazel 和 SBT 的详细对比表格

maven 包管理平台-02-windows 安装配置 + mac 安装配置

maven 包管理平台-03-maven project maven 项目的创建入门

maven 包管理平台-04-maven archetype 项目原型

maven 包管理平台-05-multi module 多模块

maven 包管理平台-06-常用技巧 实时更新快照/乱码问题/下载很慢/包依赖解决包冲突/如何导入本地 jar

maven 包管理平台-07-plugins 常见插件介绍

maven 包管理平台-08-nexus 自己搭建 maven 仓库

多模块

创建

创建一个空的 Maven 项目,它的 pom.xml 如下所示:

<?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.ryo</groupId><artifactId>multiModule</artifactId><version>1.0-SNAPSHOT</version></project>

multiModule 创建子模块 util,同时我们以类似的方式创建另一个模块 dao

子模块

  • multiModulepom.xml 将是:
<?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.ryo</groupId><artifactId>multiModule</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><modules><module>util</module></modules></project>
  • util 模块的 pom.xml 如下:
<?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"><parent><artifactId>multiModule</artifactId><groupId>com.ryo</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>util</artifactId></project>
  • util 模块中的 StringUtil.java 文件
public class StringUtil {private static final String EMPTY_STRING = "";private StringUtil(){}public static boolean isEmpty(String string) {return string == null || string.trim().equals(EMPTY_STRING);}
}

使用

如果我们想要在 dao 模块中使用 util 模块的 StringUtil.java,我们应该按照以下步骤进行:

  • 安装

util 模块或 multiModule(根模块)中安装您想要使用的模块。

多模块

  • 定义

dao 模块的 pom.xml 中定义 util 的依赖关系。

<?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"><parent><artifactId>multiModule</artifactId><groupId>com.ryo</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>dao</artifactId><dependencies><dependency><groupId>com.ryo</groupId><artifactId>util</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies>
</project>
  • 使用
public class UserDao {public boolean login(String username, String password) {return StringUtil.isEmpty(username) || StringUtil.isEmpty(password);}
}

提示

如果您在 根模块 中定义了 [一个模块] 的依赖关系,那么它的所有子模块都可以使用 [一个模块]。

但通常我们可能会像这样使用:

  • 根模块的 pom.xml 中,声明 使用。
<dependencyManagement><dependencies><dependency><groupId>com.ryo</groupId><artifactId>util</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies>
</dependencyManagement>
  • dao 模块的 pom.xml 中,定义 使用。
<dependencies><dependency><groupId>com.ryo</groupId><artifactId>util</artifactId></dependency>
</dependencies>

本文由博客一文多发平台 OpenWrite 发布!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/506410.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云服务器搭建Tianji启用网站分析

前言 Tianji 是一款 All-in-One Insight Hub&#xff0c;它集成了 网站分析(Umami) 在线时间监测(Kuma) 服务器监控 三大功能 (还有的在开发) 项目 GitHub&#xff1a;https://github.com/msgbyte/tianji 项目官网&#xff1a;https://tianji.msgbyte.com/ 为啥叫 Tianji&…

Redis学习------实战篇----2024/02/29----缓存穿透,雪崩,击穿

1.缓存穿透 Overridepublic Result queryById(Long id) {//1.从redis中查询缓存String key CACHE_SHOP_KEY id;String shopJson stringRedisTemplate.opsForValue().get(key);//2.判断是否存在//3.存在则直接返回if (StrUtil.isNotBlank(shopJson)){Shop shop JSONUtil.toB…

面试准备:排序算法大汇总 C++

排序算法总结 直接插入排序 取出未排序部分的第一个元素&#xff0c;与已排序的部分从后往前比较&#xff0c;找到合适的位置。将大于它的已排序的元素向后移动&#xff0c;将该元素插入到合适的位置。 //1. 直接插入排序 void InsertionSort(vector<int>& nums){f…

加密与安全_深入了解哈希算法

文章目录 Pre概述哈希碰撞常用的哈希算法Codejava.security.MessageDigestMD5SHA-1SHA-256MessageDigest支持算法 哈希算法的用途彩虹表攻击基本原理攻击过程 防御彩虹表攻击基本原理用途 小结 Pre PKI - 01 散列(Hash)函数 概述 哈希算法&#xff08;Hash&#xff09;又称摘…

9.8分割等和子集(LC416-M)

算法&#xff1a; 可以转换为背包问题&#xff1a; 一个商品如果可以重复多次放入是完全背包&#xff0c;而只能放入一次是01背包&#xff0c;写法还是不一样的。 要明确本题中我们要使用的是01背包&#xff0c;因为元素我们只能用一次。 只有确定了如下四点&#xff0c;才能…

数字化导师坚鹏:证券公司数字化运营三步曲之认知、行动、结果

证券公司数字化运营三步曲之认知、行动、结果 课程背景&#xff1a; 很多证券公司都在开展数字化运营工作&#xff0c;目前存在以下问题急需解决&#xff1a; 不清楚证券公司数字化运营包括哪些关键工作&#xff1f; 不清楚证券公司数字化运营工作的核心方法论&#xff1f…

2024年盘点Mac上的那些强大好用的系统清理软件

现如今MacOS上的系统维护清理软件层出不穷&#xff0c;选择一款合适的系统工具是我们的当务之急&#xff0c;下边就带你盘点一下Mac上的那些优秀好用的系统清理软件&#xff0c;看看哪款你最喜欢吧&#xff01; ​ 1、App Cleaner & Uninstaller Pro App Cleaner mac版是…

Docker知识点总结

二、Docker基本命令&#xff1a; Docker支持CentOs 6 及以后的版本; CentOs7系统可以直接通过yum进行安装&#xff0c;安装前可以 1、查看一下系统是否已经安装了Docker: yum list installed | grep docker 2、安装docker&#xff1a; yum install docker -y -y 表示自动确认…

【精华】麻省理工学院MIT技术双月刊(Bimonthly MIT Technology Review)2024年3/4月刊荐书 Book reviews

本期内容概览见博客&#xff1a;2024年3/4月刊内容概览 Book Reviews 1. Read Write Own: Building the Next Era of the Internet By Chris Dixon (Random House, 2024) With the demise of Twitter, many have advocated for a decentralized alternative for social medi…

gofly接口入参验证使用介绍

接口传入的参数做相关性质验证是开发中较为常用&#xff0c;gofly框架内置校验工具&#xff0c;提供开发效率&#xff0c;开发接口简单调用即可实现验证&#xff0c;下面介绍gofly框架数据验证设计思路及使用方法。 gofly框架提供了功能强大、使用便捷、灵活易扩展的数据/表单…

笨办法学 Python3 第五版(预览)(一)

原文&#xff1a;Learn Python the Hard Way, 5th Edition (Early Release) 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 模块 1&#xff1a;Python 入门 练习 0&#xff1a;准备工作 这个练习没有代码。这只是你完成的练习&#xff0c;让你的计算机运行 Python。…

flurl升级之后没有FlurlNewtonsoftJsonSerializer

新建NewtonsoftJsonSerializer.cs /// <summary> /// ISerializer implementation based on Newtonsoft.Json. /// Default serializer used in calls to GetJsonAsync, PostJsonAsync, etc. /// </summary> public class NewtonsoftJsonSerializer : IJsonSerial…