一、父子-聚合项目
通过 maven 可以创建父子-聚合项目。 所谓的父子项目,即有一个父项目,有多个子项目。
这些子项目,在业务逻辑上,都归纳在这个父项目下,并且一般来说,都会有重复的jar包共享。
所以常用的做法会把重复的 jar 包都放在父项目下进行依赖,那么子项目就无需再去依赖这些重复的 jar 包了。
二、创建父项目(eclipse)
- 菜单->File->New->Other->maven-Maven Project->Next
- 选择 Create a simple project. 这一步不是必须,只是简单一点。然后点击Next
- 输入参数,主要是项目名称: parentMavenProject(Artifact Id), 然后点击 Next
- 修改pom,主要两点:
- 默认是 jar, 修改为pom。 这样才可以作为父项目存在:<packaging>pom</packaging>
- 增加jar 包的依赖,用于后来子项目里观察对其的调用。
- 修改 pom.xml 之后, 右键点击项目 -> Maven -> Update Project -> OK 进行更新。 否则项目会有红点。
三、创建子项目(eclipse)
maven 子项目有叫做模块 module。
为了能够在 parentMavenProject 的基础上创建其子项目,首先右键点击 parentMavenProject, 然后点击 New -> Other -> Maven -Maven Module -> Next
(1) 和父项目一样,这里也勾选 Create a simple project ( 非必须 ),然后点 Next
(2) 输入参数,点击Finish
子项目的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> <parent> <groupId>cn.how2j</groupId> <artifactId>parentMavenProject</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>childMavenProject</artifactId> <name>childMavenProject</name> <description>childMavenProject</description> </project>
父项目多了:
<modules> <module>childMavenProject</module> </modules>
特别注意:Maven转化为Dynamic Web Module
如今Maven仍然是最常用的项目管理工具,若要将Java Web项目使用Maven进行管理,则首先需要新建Maven项目,然后将其转化为web项目。
在项目右键选择properties,然后点击左侧Project Facets,勾选Dynamic Web Module,点击Apply-->OK即可。理想情况应该可以在项目下出现WebContent目录。如果没有的话,首先回到Project Facets界面,将Dynamic Web Module取消勾选,点击Apply。然后重新勾选,下方会出现“further configuration available”的链接,点击进入,勾选生成web.xml文件即可。
WebContent生成之后将其下两个文件夹剪切到src/main/webapp下,将WebContent删除。
右击项目,选择 properties,选择Deployment Assembly。选择WebContent,并将它remove掉。接着重新指定一个web路径,点击Add,选择Folder,点击Next。在src/main下找到webapp目录,点击Finish。继续点击Add,选择Java Build Path Entries。将当前build path指向Maven Dependency。点击Apply和OK。
四、设置父子项目的层级结构(eclipse)
第一步:window-->show view --> project explorer
第二步:小三角---> projects presentation----->hierarchical
原文地址:https://www.cnblogs.com/myitnews/p/11478801.html