Gradle、Maven 本身支持多模块项目,而 Intellij IDEA 对此集成的很好。
只要在创建项目后,再通过 File
->New
->Module
,添加模块即可。
本文讨论下,不借助 IDE ,如何创建多模块项目。
请参考 Gradle: 创建含有多模块(即多个子项目)的项目
项目结构:
.
├── child1
│ ├── pom.xml
│ ├── src
│ └── main
│ └── java
│ └── demo1
│ └── Calculate.java
├── child2
│ ├── pom.xml
│ ├── src
│ └── main
│ └── java
│ └── demo2
│ └── CalculateService.java
├── pom.xml
项目根目录下的 pom.xml 要指定有哪些module:
<?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.example</groupId>
<artifactId>java-maven-moudle-demo</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<!--指定module-->
<modules>
<module>child1</module>
<module>child2</module>
</modules>
</project>
child1 和 child2 要在 parent 中指定父项目,同时child2 声明对child1 的依赖。因为 CalculateService 类要用到 Calculate 类。
child1 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>
<groupId>com.example</groupId>
<artifactId>java-maven-moudle-demo</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>child1</artifactId>
</project>
child2 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>
<groupId>com.example</groupId>
<artifactId>java-maven-moudle-demo</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>child2</artifactId>
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>child1</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
child1 模块中的 Calculate 类内容如下:
package demo1;
public class Calculate {
public static int add(int a, int b) {
return a+b;
}
}
child2 模块中的 CalculateService 类内容如下:
package demo2;
import demo1.Calculate;
public class CalculateService {
public static void main(String[] args) {
int result = Calculate.add(1, 2);
System.out.println(result);
}
}
然后打开 Intellij IDEA ,File
-> Open
,选中项目根目录的 pom.xml ,选择Open as project
打开即可。
如此,我们在IDEA中运行child2中的CalculateService
,结果如下:
3
( 本文完 )