我正在计划一个多模块的maven项目。
父POM定义了两个模块,A和B
我的问题:
1.多模块maven项目是否是实现这些目标的正确方法?
2.两个模块是否需要单独发布到maven central?
答案 0 :(得分:2)
这看起来像是多模块构建的典型场景。
.
├── mod-a
│ └── pom.xml
├── mod-b
│ └── pom.xml
└── pom.xml (parent)
父级只包含一个模块列表(两个),看起来像这样:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.soebes.smpp</groupId>
<artifactId>smpp</artifactId>
<version>0.7.1</version>
</parent>
<groupId>com.soebes.training.first</groupId>
<artifactId>project-parent</artifactId>
<version>0.1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Project : Parent</name>
<scm>
Define the SCM information here...
</scm>
<modules>
<module>mod-a</module>
<module>mod-b</module>
</modules>
</project>
每个孩子应该看起来像这样:
<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>
<parent>
<groupId>com.soebes.training.first</groupId>
<artifactId>project-parent</artifactId>
<version>0.1.0-SNAPSHOT</version>
</parent>
<name>Project : Mod-A</name>
<artifactId>mod-a</artifactId>
</project>
你的模块-b应该是这样的:
<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>
<parent>
<groupId>com.soebes.training.first</groupId>
<artifactId>project-parent</artifactId>
<version>0.1.0-SNAPSHOT</version>
</parent>
<name>Project : Mod-B</name>
<artifactId>mod-b</artifactId>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>mod-a</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
现在您可以从父模块构建,所有这些都应该部署到中央,并且不需要单独执行此操作,您可以一次性完成此操作...