maven 包管理平臺-05-multi module 多模組

老马啸西风發表於2024-03-03

擴充閱讀

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 釋出!

相關文章