Maven学习(五)
使用Maven构建多模块项目
一般的web项目构成:

建立解决方案目录parent
首先使用命令进入到我们需要建立maven项目的目录:

mvn archetype:generate -DgroupId=com.lsk.mavenProject -DartifactId=parent -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false


在 D:\java\test\下出现parent,进入,将src文件夹删除,然后修改pom.xml文件:将<packaging>jar</packaging>修改为<packaging>pom</packaging>,pom表示它是一个被继承的模块。
如果命令一直停留在:[INFO] Generating project in Batch mode,请参考:maven(二)
创建domain、dao、service层
进入到新创建的parent,创建domian模块:

创建成功后,修改domain目录中的pom.xml文件,把<groupId>com.lsk.maven</groupId>和<version>1.0-SNAPSHOT</version>去掉,加上<packaging>jar</packaging>,因为groupId和version会继承system-parent中的groupId和version,packaging设置打包方式为jar:
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lsk.maven</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>domain</artifactId>
<packaging>jar</packaging>
<name>domain</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>
创建dao模块,方法和上面一样:

创建好后,修改dao目录中的pom.xml文件,修改和domain的一样的方式,不过,需要添加对system-domain模块的依赖,修改后的内容如下:
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lsk.maven</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>dao</artifactId>
<packaging>jar</packaging>
<name>dao</name>
<url>http://maven.apache.org</url>
<dependencies>
<!--dao需要使用到domain中的类,所以需要添加对domain模块的依赖-->
<dependency>
<groupId>com.lsk.maven</groupId>
<artifactId>domain</artifactId>
<version>${project.version}</version>
</dependency> <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
创建service:

创建方式和pom.xml修改方式,和上面的一样,不过注意,这次要添加对dao模块的引用,那我们还要不要添加对domain模块的引用呢?不需要,因为虽然service依赖dao和domain,因为dao已经依赖了system-domain,我们只添加对dao的引用就可以啦。
创建web
创建web,命令和上面的模块的创建方法不太一样:

mvn archetype:generate -DgroupId=com.lsk.maven -DartifactId=web -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
修改web下的pom.xml文件,并添加对service的引用,和上面的修改方式一样,但是,注意,web项目的打包方式是war!!!!
项目层级结果及运行
现在看parent下的pom.xml

如何运行呢?最后运行的肯定是web,我们可以给他装个jetty插件,修改web下的pom.xml:
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lsk.maven</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>web</artifactId>
<packaging>war</packaging>
<name>web Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>com.lsk.maven</groupId>
<artifactId>service</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>web</finalName>
<plugins>
<!--配置Jetty插件-->
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
我们执行:mvn clean install命令:


进入web目录,启动jetty:

mvn jetty:run

浏览器访问:

可以使用Ctrl+c停止jetty。
导入到Eclipse




Maven学习(五)的更多相关文章
- Maven学习 (五) Elipse中发布一个Maven项目到Tomcat
对于maven初学者的我,经常遇到一个问题就是,maven项目创建成功后,本来已经添加了jar的依赖,但是发布到Tomcat中就是没有jar包存在, 启动Tomcat总是报没有找到jar包,可项目结构 ...
- Maven学习 五 Maven项目创建(1)jar项目
第一步:Maven项目的创建 File->new->Maven project. 点击下一步 上方的两个多选框选上,第一个是不使用archetype 原型模板,第二个是使用默认工作空间 点 ...
- Maven学习(五)-----如何从Maven远程存储库下载?
如何从Maven远程存储库下载? 根据 Apache Maven 的说明: Downloading in Maven is triggered by a project declaring a dep ...
- (转)Maven学习总结(五)——聚合与继承
孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(五)——聚合与继承 一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1.聚合配置代码 1 <mod ...
- Maven学习笔记-03-Eclipse下maven项目在Tomcat7和Jetty6中部署调试
现在最新的Eclipse Luna Release 已经内置了Maven插件,这让我们的工作简洁了不少,只要把项目直接导入就可以,不用考虑插件什么的问题,但是导入之后的项目既可以部署在Tomcat也可 ...
- Maven学习笔记-04-Eclipse下maven项目在Tomcat7和Jetty6中部署调试
现在最新的Eclipse Luna Release 已经内置了Maven插件,这让我们的工作简洁了不少,只要把项目直接导入就可以,不用考虑插件什么的问题,但是导入之后的项目既可以部署在Tomcat也可 ...
- (转)Maven学习总结(八)——使用Maven构建多模块项目
孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(八)——使用Maven构建多模块项目 在平时的Javaweb项目开发中为了便于后期的维护,我们一般会进行分层开发,最常见的就是分为doma ...
- (转)Maven学习总结(四)——Maven核心概念
孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(四)——Maven核心概念 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平面中唯一的一点. 1.2.Mav ...
- Maven学习- 使用Maven构建Web项目
从网上查了一些资料,才算明白(也就是怎么操作吧),怎么使用Maven构建一个Web项目,找到一篇文档,主要都是从这里学到的: 下载地址:使用Eclipse构建Maven的Web项目.docx 现自己在 ...
- 【Maven学习】Nexus OSS私服仓库的备份与迁移
背景 在上一篇博客 [Maven学习]Nexus OSS私服仓库的安装和配置 中,我们已经在机房搭建好了新的Nexus OSS私服仓库.下面是两个版本的Nexus OSS私服仓库的对比图. 老的Nex ...
随机推荐
- mock.js-无需等待,随机产生数据,让前端独立于后端进行开发
mock.js所做的 基于 数据模板 生成模拟数据. 基于 HTML模板 生成模拟数据. 拦截并模拟 ajax 请求. Mock.js官方网址:http://mockjs.com/ 1.Mock.js ...
- DOM的发展,DOM0,DOM1,DOM2,DOM3
Documentc Object Model文档对象模型是针对XML但经过扩展用于HTML的应用程序接口(API Application programming Interface).DOM把整个界面 ...
- 【BFS + Hash】拼图——携程2017春招编程题2
写在前面 前天参加了携程的网测--还是感觉自己太!渣!了! _(:з」∠)_ 时光匆匆啊,已经到了开始思考人生的时候了(算了不矫情了)--总之写个博客来督促一下自己.之前太懒了,很多时候都是输在 ...
- 查询sql server进程死锁方案
SELECT a.spid , a.blocked , lastwaittype = RTRIM( a.lastwaittype ), waitresource = RTRIM( a.waitreso ...
- c# 基础算法(一) 九九乘法
闲来无事,偶见某贴子里面讨论面试题.突然对一题产生了兴趣,做一道99乘法打印(主要是我工作了2家单位,还没有一家单位在面试时给我出这一道题)于是试着自己写写看.大概逻辑如下 class program ...
- redis多端口,多实例。
本屌的redis装载/usr/local/redis了 cp 一份配置 vim 配置文件 port 修改 bind 绑定ip,默认0.0.0.0所有用户允许访问. dbfilename cac ...
- C语言学习第五章
今天要进行一个重要元素数组的学习了.这一章要掌握什么是数组,数组怎么样命名,数组怎么样使用,以及一些常见的错误和需要注意的事项. 一. 数组的基本概念 数组是可以在内存中连续存储多个元素的结 ...
- gsoap创建webservice服务简单教程
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] WebServicesoapgsoap 使用gsoap创建webservice服务 下载gsop 准备待导出的服务接口定义文件比 ...
- myeclipse的class文件编译设置
一,设置单个工程的class文件路径 右击工程,BulidPath——Configure Build Path
- ST-4
1.(49-7)使用下面的方法printPrimes()完成后面的问题: (a)为printPrimes()方法画控制流图. (b)考虑测试用例t1=(n=3)和t2=(n=5).即使这些测试用例游历 ...