我们都知道,我们常常将一个复杂的java应用拆分成多个java子应用。由于maven的出现,这种拆分就更加容易了,因为我们通过maven可以创建多个关联模块的项目(Multiple Module Projects)。由一个总的模块,下面包含多个子模块(子模块还可以包含子模块)。
一、通过在Maven命令行创建。
1. 创建父模块(总的POM) - cms-validator
使用命令mvn archetype:create -DgroupId=com.ebay.tools.cms.validator -DartifactId=cms-validator
创建一个maven项目,然后修改该项目的pom.xml文件,将package类型改为pom
<packaging>pom</packaging>
并删除其中的src目录。
cd cms-validator
2. 创建提供rest service的子模块:validator-rest
在父模块的目录下,
使用命令mvn archetype:create -DgroupId=com.ebay.tools.cms.validator.rest -DartifactId=validator-rest
创建一个maven(子)项目。
3. 创建一个web子模块: validator-web
在父模块的目录下,
mvn archetype:create -DgroupId=com.ebay.tools.cms.validator.web -DartifactId=validator-web -DarchetypeArtifactId=maven-archetype-webapp
完成以上3步以后,会在总的pom.xml中已经自动加入:
<modules> <module>validator-rest</module> <module>validator-web</module> </modules>
在各个子模块中也自动的加入了:
<parent>
<artifactId>cms-validator</artifactId><groupId>com.ebay.tools.cms.validator</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
由于默认情况下子模块继承了总POM的package(pom),这里需要修改子模块的pom的package类型。
validator-web模块覆盖为<packaging>war</packaging>, validator-rest模块修改为:<packaging>jar</packaging>。
4. 对父模块的特别设置:
需要在上级模块中设置java编译的参数,现在eclipse一般都使用比较新的版本,默认jdk是1.6,而maven默认的Jdk版本很有可能还是1.4。 所以需要设置java编译参数。
<plugin>
<artifactId>maven-compiler-plugin</artifactId><configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
5. 如果web子模块需要wtp的支持,则可以在web模块的pom中设置wtp的支持,需要设置elcipse插件:
<build>
<plugins><plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<wtpmanifest>true</wtpmanifest>
<wtpapplicationxml>true</wtpapplicationxml>
<wtpversion>2.0</wtpversion>
</configuration>
</plugin>
</plugins>
</build>
6. 生成eclipse项目:
在父模块的根目录下,执行命令:
mvn eclipse:eclipse
注:在eclipse中导入如上的项目后,如果没有在eclipse中设置"M2_REPO",导入的项目可能会报错,
可以在eclipse中设置M2_REPO, 配置步骤:window >> preferences >> Java >> Build Path >> Classpath Variables
新建一个 M2_REPO 的变量,变量值指向你系统的Maven2的数据仓库位置(例如我自己的路径为:C:\maven-repo\swang\ebox)。如果要在eclipse中使用m2eclipse,需要执行命令mvn eclipse:m2eclipse, 这样就不需要设置M2_REPO类库变量了。
二、在Eclipse中创建多个maven项目模块
在Eclipse中创建父模块及其子模块也非常简单,主要也是通过选择模块的路径来完成。
1. 创建父模块:ast
例如在eclipse中new 一个simple maven project,注意选择父模块的路径为:C:\Users\swang6\workspace\ast
在创建的steps中输入如下信息:
Group Id: com.ebay.tools
Artifact Id: ASTController
version: 1.0.0
Packaging: pom
Name: Tools:ASTController:ASTController
Description:eBox command application using the command pipeline framework.
2. 创建子模块: ASTRestService
在eclipse new 一个simple maven project,注意选择该子模块的路径为:C:\Users\swang6\workspace\ast\ASTRestService,
在创建的steps中输入如下信息:
Group Id:com.ebay.tools.ast
Artifact Id:ASTRestService
version: 1.0.0
Packaging: jar
Name: Tools:ASTController:AST-REST
Description:Restful services for load balance controller.
Parent Project
Group Id:com.ebay.tools
Artifact Id:ASTController
Version:1.0.0
3. 创建子模块: ASTWeb
在eclipse new 一个maven-archetype-webapp类型的project,注意选择该子模块的路径为:C:\Users\swang6\workspace\ast\ASTWeb
在创建的steps中输入如下信息:
Group Id:com.ebay.tools.ast
Artifact Id:ASTWeb
version: 1.0.0
Packaging: war
Name: Tools:ASTController:AST-WEB
Description:The Load Balance Controller Web application for handling the requests
Parent Project
Group Id:com.ebay.tools
Artifact Id:ASTController
Version:1.0.0
完成以上操作后,如果在父模块(ast, ASTController)中的pom.xml中没有如下的配置,则加上:
<modules>
<module>ASTWeb</module>
<module>ASTRestService</module>
</modules>
如果在ASTRestService和ASTWeb中的pom.mxl中没有如下配置,则加上:
<parent>
<artifactId>ASTController</artifactId>
<groupId>com.ebay.tools</groupId>
<version>1.0.0</version>
</parent>
这样就完成了在Eclipse中创建一个父模块ASTController,然后在其下创建另外两个子模块:ASTRestService和web模块:ASTWeb。
相关推荐
eclipse创建多模块项目
一、项目结构 multi-module-PRoject是主工程,里面包含两个模块(Module): web-app是应用层,用于界面展示,依赖于web-serv
使用Maven构建多模块项目
1. 在你的 eclipse 安装的根目录下创建两个文件夹:links,plugins(名字可以随便取),我的这两个文件夹位于:path=D:/Development/eclipse-JavaEE/eclipse(作为参考,下面用到) 2. eclipse-maven3-plugin.7z ...
Eclipse新建和部署maven项目,每一步都有详细的截图
NULL 博文链接:https://zlrzlm7454.iteye.com/blog/2321724
项目结构是父项目-子模块的结构进行组织。整个项目以pom型项目进行组织,其模块可以是jar项目,也可以是war项目,也可以pom项目。合理的使用maven-module项目,可以是项目结构分明,同时提高了代码的复用性。本文以...
这个工程代码,是在ECLIPSE下面建立的,应用Gradle作为构建工具,建立的一个多模块项目。注意不是Maven下的多模块项目。
该文档介绍了eclipse创建maven项目的详细步骤,包含图文 eclipse创建maven项目.doc eclipse创建maven项目.doc eclipse创建maven项目.doc eclipse创建maven项目.doc eclipse创建maven项目.doc eclipse创建maven项目....
来自 在Eclipse中用Maven创建一个Web项目 的附带项目源码 jdk1.8 博客地址 https://blog.csdn.net/rebornsgundam/article/details/105862362
eclipse下创建ssm+MySQL+maven多模块项目。此demo用于提供给新手学习使用,如有不妥之处请联系楼主
如何在Eclipse IDE中使用maven创建一个动态Web项目. 使用的工具和技术 - Eclipse Jee Oxygen Maven 3.3.3 JavaSE 1.8 Servlet API 3.1.0 Apache Tomcat 7.0.47 (Embeded)
Springboot 多模块 maven 实例 亲测可运行 ···············
所有用Maven管理的真实的项目都应该是分模块的,每个模块都对应着一个pom.xml。它们之间通过继承和聚合(也称作多模块,multi-module)相互关联。 提供了一个简单的Maven多模块实例
详细介绍IDEA从远程仓库SVN拉去MAVEN项目.多模块的项目
Maven在eclipse中的项目启动命令
1.创建Maven项目构建多模块的Maven项目第一步需创建Maven父级项目,该项目负责聚合所有模块的内容,并进行编译、打包和发布工作。以下是创建Maven项目的具体步骤: 1.1. Maven环境配置配置M2_HOME和MAVEN_HOME,如下...
eclipse中Maven安装插件和maven方便大家的安装和下载使用
maven是一款java包管理软件,有点像ruby的gem,本教程使用maven创建多模块项目!
maven多模块项目使用jetty,详细看http://blog.csdn.net/xiejx618/article/details/49936541