一、工程结构:
其中ds 系统中包含两个模块,分别为ds-service和ds-admin
二、搭建如上工程结构步骤如下:
1、创建父项目ds,在Eclipse里面New -> Maven Project
;记得勾选Create a simple project”
创建工程时注意一下红圈:
2、父项目建好之后,将目录下面将其他无关的文件删除,只要留下pom.xml即可。
<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><!--声明项目描述符遵循哪一个POM模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,这是为了当Maven引入了新的特性或者其他模型变更的时候,确保稳定性。-->
<groupId>com.suning.search</groupId>
<artifactId>ps</artifactId>
<packaging>pom</packaging> <!--所有带有子模块的项目的packaging都为pom-->
<name>ds-parent</name>
<version>0.0.1-SNAPSHOT</version>
<modules><!--包含的这两个子模块是后面建立模块的时候自动生成的-->
<module>ds-admin</module>
<module>ds-service</module>
</modules>
<dependencyManagement><!--admin和service公用的依赖放在这里-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
3、创建子模块:
选中刚建的父项目,在弹出菜单中点击 New -> Maven Module
;在红圈中输入子模块名称。添加完成后会在父项目的pom中自动添加模块名。
(注意:子模块创建过程如果是一般的模块,保持默认GroupId:org.apache.maven.archetypes,Artifact Id:maven-archetype-quickstart,如果是web模块则选中下图中的红圈所示选项)
按上面步骤创建的子项目,在pom.xml
中有个parent
节点,所以,他可以继承父项目的相关信息。没错,父子项目中存在继承关系。
在子项目的pom.xml
中,子项目的groupId
和version
一般和父项目相同,那么可以把子项目的这两个参数删除,这样会自动继承父项目的取值。
同样,如果其他的一些属性,所有子项目都是一样的,那么可以上移到父项目中设置,子项目中无需重复设置。比如:<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>可以仅在父项目中设置一次。
Manen提供dependencyManagement
和
pluginManagement
两个标签。使用这两个标签,可以在父项目中统一管理依赖和插件的配置参数,比如版本号啥的。而在子项目中,仅需列出需要使用的依赖和插件的
groupId
和
artifactId
就可以了,其他信息会自动从父项目管理的信息里面获取。
例如:
在父项目中:
<dependencyManagement><!--admin和service公用的依赖放在这里-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
子项目中:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>