擴充閱讀
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:
- multiModule 的
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>
<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 釋出!