项目中用到maven,多模块的项目关联。结构图在下面...
parent项目中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>
<parent>
<groupId>com.suning.framework</groupId>
<artifactId>snf-parent</artifactId>
<version>2.2.54</version>
</parent>
<artifactId>ott-pom</artifactId>
<name>ott-pom</name>
<groupId>com.suning.ebuy.ott</groupId>
<version>0.0.1</version>
<strong><packaging>pom</packaging></strong>
<span style="white-space:pre"> </span>...
<span style="white-space:pre"> </span><modules>
<module>../ott-intf</module>
<module>../ott-service</module>
<module>../ott-web-in</module>
<module>../ott-web</module>
</modules>
其中<packaging>pom</packaging>这个父项目不像之前的项目那样创建一个JAR 或者一个WAR,它仅仅是一个引用其它Maven 项目的POM。pom.xml 中的modules标签列出了子模块项目,每个modules 元素对应了一个simple-parent/目录下的子目录。Maven知道去这些子目录寻找pom.xml 文件,并且,在构建的simp-parent 的时候,它会将这些子模块包含到要构建的项目中。
然后在子项目中配置parent项目的信息,就能实现模块间的关联了。如:
ott-service项目中的pom.xml文件
...
<artifactId>ott-service</artifactId>
<name>ott-service</name>
<packaging>jar</packaging>
<<strong>parent</strong>>
<groupId>com.suning.ebuy.ott</groupId>
<artifactId>ott-pom</artifactId>
<version>0.0.1</version>
<relativePath>../ott-pom/pom.xml</relativePath>
</parent>
<span style="white-space:pre"> </span>...
当Maven 执行一个带有子模块的项目的时候,Maven 首先载入父POM,然后定位所有的子模块POM。Maven 然后将所有这些项目的POM 放入到一个称为Maven 反应堆(Reactor)的东西中,由它负责分析模块之间的依赖关系。这个反应堆处理组件的排序,以确保相互独立的模块能以适当的顺序被编译和安装。
父pom.xml进行完成多个子项目的关联后,就可以分别进入某个单独的模块和编译使用