关于后端:maven-包管理平台05multi-module-多模块

7次阅读

共计 3096 个字符,预计需要花费 8 分钟才能阅读完成。

拓展浏览

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 公布!

正文完
 0