简介
因为在工作中经常要使用到maven做工程开发。很多时候我们开发的项目不仅仅是一个单独的工程,出于更多的可重用和部署的目的,我们在大多数的情况下会使用多个工程进行开发。因此怎么使用maven来创建多工程的项目就有必要总结一下。在前面的一些文章里已经讨论过了maven相关的基础设置。
详细步骤
创建父工程
通常的情况下,我们是希望创建一个父工程,它将作为一个所有工程的公共目录。里面包含有整个大的项目的描述。
比如说,我们执行如下命令:
mvn archetype:generate -DgroupId=com.yunzero -DartifactId=cloud-parent -DinteractiveMode=false
系统会输出一大堆如下的内容:
[INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Maven Stub Project (No POM) 1 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] >>> maven-archetype-plugin:2.2:generate (default-cli) > generate-sources @ standalone-pom >>> [INFO] [INFO] <<< maven-archetype-plugin:2.2:generate (default-cli) < generate-sources @ standalone-pom <<< [INFO] [INFO] --- maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom --- [INFO] Generating project in Batch mode [INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0) [INFO] ---------------------------------------------------------------------------- [INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.0 [INFO] ---------------------------------------------------------------------------- [INFO] Parameter: basedir, Value: /home/frank/programcode/maven [INFO] Parameter: package, Value: com.yunzero [INFO] Parameter: groupId, Value: com.yunzero [INFO] Parameter: artifactId, Value: cloud-parent [INFO] Parameter: packageName, Value: com.yunzero [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] project created from Old (1.x) Archetype in dir: /home/frank/programcode/maven/cloud-parent [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 16.855 s [INFO] Finished at: 2015-05-04T21:12:33+08:00 [INFO] Final Memory: 15M/303M [INFO] ------------------------------------------------------------------------
这个时候,如果我们去看当前的目录,会生成一个名字为cloud-parent的目录。上述的命令就是生成一个名字为cloud-parent的工程,而且里面的工程默认包空间名为com.yunzero。这个生成的目录结构如下图:
除了生成的目录结构之外,我们再来看看生成的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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.yunzero</groupId> <artifactId>cloud-parent</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>cloud-parent</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
这是一个典型的maven工程pom描述文件。而且它默认的打包方式是生成jar文件。在这里,因为我们需要将该工程作为项目的父目录,所以需要将<packaging>元素里面的jar改为pom。同时,该文件家生成的其他文件并不是必要的,我们可以将它们都删除。这样,我们就得到一个仅仅包含有pom.xml文件的目录。
生成子工程
假设我们还需要生成两个子工程,分别为cloud-common, cloud-service。我们可以在该工程目录中执行命令:
mvn archetype:generate -DgroupId=com.yunzero -DartifactId=cloud-common -DinteractiveMode=false
这个时候,我们会发现在当前的目录里多了一个cloud-common的目录。这样整体的项目结构如下图:
如果我们再去看当前目录下的pom.xml文件,会发现里面多了这么一个部分:
<modules> <module>cloud-common</module> </modules>
这部分就正好定义了父工程和所包含的子工程之间的关系。
按照同样的方法,我们再定义另外一个工程cloud-service。
mvn archetype:generate -DgroupId=com.yunzero -DartifactId=cloud-service -DinteractiveMode=false
这样,整个的工程就生成了。我们可以运行命令mvn clean install来编译和打包工程。
导入eclipse
执行命令:
mvn eclipse:eclipse
在结束后运行eclipse,选择导入工程:
然后选择我们刚才创建的工程所在目录:
选择确定之后我们将看到有如下的两个工程被选择上了:
这样,一个多工程的项目就被创建了。
相关推荐
在eclipse中不使用maven创建springboot工程所需jar包,一共32个。亲测各包兼容,完美运行。
基于maven创建web项目 基础环境 Myeclipse2013 Tomcat8.0 Jdk1.8 apache-maven-3.3.9 环境配置
maven创建web工程
使用Maven搭建S2SH工程详解一:使用Maven创建struts2工程
maven创建父子结构工程
空白的,经过单元测试的,mavenWeb项目
此文件是我个人搜索了好久才找到的,文档略加了一下修改
maven多模块项目,使用eclipse开发工具创建,有意可下载,没有解压密码
eclipse 创建maven 项目 动态web工程完整示例,新建maven,到发布案列,从零开始学习
该资源包含了一个手动创建的maven工程,简单易懂,喜欢的下载。可以参考博客http://blog.csdn.net/mockingbirds/article/details/47302815
创建maven工程详细步骤
手把手教你使用idea建SSM工程(一)——创建maven+web项目 能简单的展示页面。。。。。
电脑暂时没有装maven,最近突发奇想,向在搭建一个spring boot非maven项目,折腾了两个小时,下载jar包冲突问题居多,最后结合网上博客,整理了一份spring boot所需的jar包,亲测没有问题
BI产品开发中经典的技术框架
本文是开发笔记和教程,主要说明了使用springboot从0开始,完成了创建maven聚合工程,搭建使用了springboot modules工程。 同时,项目搭建的源码开源分享。此文是springboot初学者,搭建多模块项目的推荐文章。
本资源是Springboot+maven的项目框架搭建结果,具体搭建步骤与https://xiaoyao.blog.csdn.net/article/details/89512968内容匹配
主要介绍了IntelliJ IDEA 构建maven多模块工程项目(详细多图),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
一、项目结构 multi-module-PRoject是主工程,里面包含两个模块(Module): web-app是应用层,用于界面展示,依赖于web-serv
这是一个压缩包。这是一个maven项目,使用Java语言开发的web工程,使用了SpringMVC+Spring+Mybatis,建议初学者入手。
maven 入门教程PDF,包括maven介绍,配置,项目创建,eclipse创建maven项目等