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

打印 上一主题 下一主题

主题 852|帖子 852|积分 2556

拓展阅读

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 如下所示:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5.     <modelVersion>4.0.0</modelVersion>
  6.     <groupId>com.ryo</groupId>
  7.     <artifactId>multiModule</artifactId>
  8.     <version>1.0-SNAPSHOT</version>
  9. </project>
复制代码
multiModule 创建子模块 util,同时我们以类似的方式创建另一个模块 dao

  • multiModule 的 pom.xml 将是:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5.     <modelVersion>4.0.0</modelVersion>
  6.     <groupId>com.ryo</groupId>
  7.     <artifactId>multiModule</artifactId>
  8.     <version>1.0-SNAPSHOT</version>
  9. </project>    pom            util   
复制代码

  • util 模块的 pom.xml 如下:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5.     <parent>
  6.         <artifactId>multiModule</artifactId>
  7.         <groupId>com.ryo</groupId>
  8.         <version>1.0-SNAPSHOT</version>
  9.     </parent>
  10.     <modelVersion>4.0.0</modelVersion>
  11.     <artifactId>util</artifactId>
  12. </project>
复制代码

  • util 模块中的 StringUtil.java 文件
  1. public class StringUtil {
  2.     private static final String EMPTY_STRING = "";
  3.     private StringUtil(){}
  4.     public static boolean isEmpty(String string) {
  5.         return string == null || string.trim().equals(EMPTY_STRING);
  6.     }
  7. }
复制代码
使用

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

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

  • 定义
dao 模块的 pom.xml 中定义 util 的依赖关系。
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5.     <parent>
  6.         <artifactId>multiModule</artifactId>
  7.         <groupId>com.ryo</groupId>
  8.         <version>1.0-SNAPSHOT</version>
  9.     </parent>
  10.     <modelVersion>4.0.0</modelVersion>
  11.     <artifactId>dao</artifactId>
  12.     <dependencies>
  13.         <dependency>
  14.             <groupId>com.ryo</groupId>
  15.             <artifactId>util</artifactId>
  16.             <version>1.0-SNAPSHOT</version>
  17.         </dependency>
  18.     </dependencies>
  19. </project>
复制代码

  • 使用
  1. public class UserDao {
  2.     public boolean login(String username, String password) {
  3.         return StringUtil.isEmpty(username) || StringUtil.isEmpty(password);
  4.     }
  5. }
复制代码
提示
如果您在 根模块 中定义了 [一个模块] 的依赖关系,那么它的全部子模块都可以使用 [一个模块]。
但通常我们可能会像这样使用:

  • 根模块的 pom.xml 中,声明 使用。
  1. <dependencyManagement>
  2.     <dependencies>
  3.         <dependency>
  4.             <groupId>com.ryo</groupId>
  5.             <artifactId>util</artifactId>
  6.             <version>1.0-SNAPSHOT</version>
  7.         </dependency>
  8.     </dependencies>
  9. </dependencyManagement>
复制代码

  • dao 模块的 pom.xml 中,定义 使用。
  1. <dependencies>
  2.     <dependency>
  3.         <groupId>com.ryo</groupId>
  4.         <artifactId>util</artifactId>
  5.     </dependency>
  6. </dependencies>
复制代码
本文由博客一文多发平台 OpenWrite 发布!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

涛声依旧在

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表