(5)Maven快速入门_5maven聚合与继承_scope依赖范围
多个maven项目实现统一管理, maven 插件jar继承自父的maven项目。对maven中jar的版本进行管理。
1、创建一个项目来管理多个maven项目
new ----maven Project
勾选 Create a simple project(skip archetype selection)

next :填写项目信息, packaging 选 pom 。

创建完成后项目目录结构如下:

编辑 pom.xml配置文件
1、maven 聚合: 统一管理多个maven模块项目,统一执行编译 ,清理,安装
需要配置: <modules> </modules> 来管理多个maven项目, (配置完成后,直接点击 此项目的pom.xml 文件右键运行,即可使管理的多个maven项目同时maven install、maven clean 简化了操作)
<!-- (maven的聚合:) 统一管理多个maven模块项目,统一执行编译 ,清理,安装 -->
<modules>
<!-- 管理处在同一级目录的项目,先回到父目录再找需要管理的目录 -->
<module>../dao</module>
<module>../service</module>
</modules>
2、dao 、service 、controller 项目中 引入的maven jar 统一配置到 extendsagg项目中, 再 dao 、servcie 、controller 中 配置 <parent></parent> 可简化自身项目的pom.xml配置,引入jar的版本也可以统一继承自父项目。
<!-- maven继承自父项目 -->
<parent>
<groupId>com.inspur.smvc</groupId>
<artifactId>extendsagg</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../extendsagg/pom.xml</relativePath>
</parent>
<!-- 本项目信息 继承父项目 可简化-->
<artifactId>controller</artifactId>
<packaging>war</packaging> <!-- 添加Spring支持 继承父项目 可简化版-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
3、maven 父项目 extendsagg 项目中pom.xml 中 jar 信息 的版本号 进行统一设置。
<!-- 各个 maven插件 引入的jar的版本统一管理 -->
<properties>
<spring.version>4.1.7.RELEASE</spring.version>
<log4j.version>1.2.17</log4j.version>
<junit.version>4.12</junit.version>
</properties> <!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency> <!-- spring start-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
controller maven模块的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>
<!-- maven继承自父项目 -->
<parent>
<groupId>com.inspur.smvc</groupId>
<artifactId>extendsagg</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../extendsagg/pom.xml</relativePath>
</parent>
<!-- 本项目信息 -->
<artifactId>controller</artifactId>
<packaging>war</packaging> <!-- <name>controller Maven Webapp</name> -->
<!-- <url>http://maven.apache.org</url> --> <dependencies> <!-- 引入service -->
<dependency>
<groupId>com.inspur.smvc</groupId>
<artifactId>service</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency> <!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl -->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl</artifactId>
</dependency> <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<scope>provided</scope>
</dependency> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency> <!-- 添加Spring支持 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency> <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>controller</finalName>
</build>
</project>
dao maven模块的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> <!-- maven继承自父项目 -->
<parent>
<groupId>com.inspur.smvc</groupId>
<artifactId>extendsagg</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../extendsagg/pom.xml</relativePath>
</parent>
<!-- 本项目信息 -->
<artifactId>dao</artifactId>
<packaging>jar</packaging>
<!-- 注释
<name>dao</name>
<url>http://maven.apache.org</url>
--> <!-- <build> -->
<!-- <resources> -->
<!-- 编译之后包含xml -->
<!-- <resource> -->
<!-- <directory>src/main/java</directory> -->
<!-- <includes> -->
<!-- <include>**/*.xml</include> -->
<!-- </includes> -->
<!-- <filtering>true</filtering> -->
<!-- </resource> -->
<!-- 编译之后包含xml -->
<!-- <resource> -->
<!-- <directory>src/main/resources</directory> -->
<!-- <includes> -->
<!-- <include>*.xml</include> -->
<!-- </includes> -->
<!-- <filtering>true</filtering> -->
<!-- </resource> -->
<!-- </resources> -->
<!-- </build> --> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> <dependencies> <!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency> <!-- https://mvnrepository.com/artifact/oracle/ojdbc -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0</version> </dependency> <!-- <dependency> -->
<!-- <groupId>commons-dbcp</groupId> -->
<!-- <artifactId>commons-dbcp</artifactId> -->
<!-- <version>1.2.2</version> -->
<!-- </dependency> --> <!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</dependency>
<!-- junit4.12 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
service maven 模块的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> <!-- maven继承自父项目 -->
<parent>
<groupId>com.inspur.smvc</groupId>
<artifactId>extendsagg</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../extendsagg/pom.xml</relativePath>
</parent> <!-- 本项目的maven插件信息 -->
<artifactId>service</artifactId>
<packaging>jar</packaging> <!-- <name>service</name> -->
<!-- <url>http://maven.apache.org</url> --> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> <dependencies> <!-- 依赖 dao -->
<dependency>
<groupId>com.inspur.smvc</groupId>
<artifactId>dao</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</dependency> <!-- spring start-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency> <!-- spring end --> <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
extendsagg maven 父项目统一管理 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> <groupId>com.inspur.smvc</groupId>
<artifactId>extendsagg</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging> <!-- (maven的聚合:) 统一管理多个maven模块项目,统一执行编译 ,清理,安装 -->
<modules>
<!-- 管理处在同一级目录的项目,先回到父目录再找需要管理的目录 -->
<module>../dao</module>
<module>../service</module>
</modules> <!-- 各个 maven插件 引入的jar的版本统一管理 -->
<properties>
<spring.version>4.1.7.RELEASE</spring.version>
<log4j.version>1.2.17</log4j.version>
<junit.version>4.12</junit.version>
</properties> <dependencyManagement>
<dependencies>
<!-- dao start -->
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency> <!-- https://mvnrepository.com/artifact/oracle/ojdbc -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0</version> </dependency> <!-- <dependency> -->
<!-- <groupId>commons-dbcp</groupId> -->
<!-- <artifactId>commons-dbcp</artifactId> -->
<!-- <version>1.2.2</version> -->
<!-- </dependency> --> <!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!-- junit4.12 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!-- dao end --> <!-- service start -->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency> <!-- spring start-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency> <!-- service end --> <!-- controller start -->
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl -->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency> <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
<scope>provided</scope>
</dependency> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency> <!-- controller end --> </dependencies>
</dependencyManagement> </project>
pom.xml中
scope 选项 :
Compile(默认) 编译 依赖范围 :编译、测试、运行都有效;
Test 测试 依赖范围 :仅测试有效;例如 JUnit;
Provided 已提供 依赖范围 : 编译,测试有效,运行时无效。例如 servlet-api。
System 系统 依赖范围 : 使用system范围的依赖必须通过systemPath 指定依赖文件的路径。
Import 导入 依赖范围 : 使用dependencyManagement时候,可以导入依赖配置。
(5)Maven快速入门_5maven聚合与继承_scope依赖范围的更多相关文章
- (转)Maven学习总结(五)——聚合与继承
孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(五)——聚合与继承 一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1.聚合配置代码 1 <mod ...
- Maven快速入门(二)手动创建maven项目hellomaven
之前讲过Maven介绍及环境搭建,介绍了maven的作用和如何搭建maven环境.接下来就以一个helloworld的例子来说一说如何创建maven项目以及maven项目的项目结构,最后讲maven如 ...
- Maven快速入门(三)Maven的坐标和仓库
之前通过一个helloworld的例子来说一说如何创建maven项目以及maven项目的项目结构,然后讲maven如何编译运行项目.接下来介绍maven中几个比较重要的概念:坐标和仓库.Maven快速 ...
- (4)Maven快速入门_4在Spring+SpringMVC+MyBatis+Oracle+Maven框架整合运行在Tomcat8中
利用Maven 创建Spring+SpringMVC+MyBatis+Oracle 项目 分了三个项目 Dao (jar) Service (jar) Controller (web) ...
- (1)Maven快速入门_1maven安装
Maven 快速入门 1.1 Maven官网下载 windows 系统 下载 下图红色框选处. 下载到本地解压, 创建一个本地maven仓库的目录 maven_lib 配置Maven的环境变量 ...
- Java实战及解析 — Maven快速入门
五分钟快速入门 mvn --version mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -Darche ...
- Scala快速入门(四)——继承、接口
Scala快速入门(四)--继承.接口 一.继承 1.继承的概念:省略 2.模板: class Person(n:String,a:Int) { var name:String=n var age:I ...
- Maven快速入门(一)Maven介绍及环境搭建
做开发的程序员都知道,在系统开发需要各自各样的框架.工具.其中有一种工具不管你是初级程序员还是高级程序员都必须熟练掌握的,那就是项目管理工具(maven.ant.gradle).接下来就总结Maven ...
- Maven——快速入门手册(学习记录)
前言: 前段时间进行了一点maven的入门学习,在这里做个记录,希望能帮到一些正在学习的朋友们.maven版本为3.3.9.希望大家觉得好的点个赞,觉得不好的多提提意见和建议做个交流.这里也贴出我学习 ...
随机推荐
- nodejs操作mysql常见错误
1.Cannot enqueue Handshake after already enqueuing a Hand shake.这个错误提示意思是某个数据库连接已经执行了,不能进行多次连接了.遇到此类 ...
- 十五、过滤器(Filter)
过滤器(Filter) 过滤器概述 1 什么是过滤器 过滤器JavaWeb三大组件之一,它与Servlet很相似!不它过滤器是用来拦截请求的,而不是处理请求的. 当用户请求某个Servlet时,会先执 ...
- JavaScript 异步编程的前世今生(下)
ES6 中的 Generator 在 ES6 出现之前,基本都是各式各样类似Promise的解决方案来处理异步操作的代码逻辑,但是 ES6 的Generator却给异步操作又提供了新的思路,马上就有人 ...
- python网络-计算机网络基础(23)
一.网络简介 网络是由节点和连线构成,表示诸多对象及其相互联系. 一个人玩: 两个人玩: 多个人玩: 说明 网络就是一种辅助双方或者多方能够连接在一起的工具 如果没有网络可想单机的世界是多么的孤单 使 ...
- 前端(各种demo)一:css实现三角形,css实现梯形,pop弹层,css伪类before,after使用,svg使用(持续更新中)
各种demo: 1.css实现正方形 思路:width为0:height为0:使用boder-width为正方形的边长的一半,不占任何字节:border-style为固体:border-color为正 ...
- 【Docker】(6)---Dockerfile文件
springboot项目打包镜像中的Dockerfile文件 在讲Dockerfile文件之前应该先讲下maven的一个插件叫:dockerfile-maven-plugin.他们是组合一起用的 一. ...
- solr之环境配置一
安装Java JDK solr运行需要java serverlet 容器,默认使用jetty,或者tomcat,jboss等等. 下载一个jdk,我的jdk是jdk1.7.0_65. 安装JDK的步骤 ...
- Jenkins时区设置为北京时间
打开 [系统管理]->[脚本命令行]运行下面的命令 System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/ ...
- Android--拦截系统BroadcastReceiver
前言 上一篇博客,讲了BroadcastReceiver的一些基础内容,如何注册以及发送一个广播,那是基础,不清楚的可以先看看:Android--BroadcastReceiver.但是在实际开发当中 ...
- Spring Cloud中服务的发现与消费
之前没注意,微信公众号的图片不能引用到其他地方,本文图片显示不正常,原图在写完博客后已经删了,,,,,,所以本文小伙伴可以移步这里https://mp.weixin.qq.com/s/GoIZdwt5 ...