- 浏览: 304096 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (405)
- linux (31)
- java (144)
- mysql (52)
- html (19)
- oracle (8)
- sql (12)
- 无题 (5)
- js (16)
- android (4)
- tomcat (4)
- struts (2)
- spring (12)
- elcipse (2)
- shell (7)
- interview (2)
- redis (6)
- apache (2)
- maven (10)
- mq (6)
- kengen (0)
- windows (3)
- css (1)
- nginx (2)
- google (1)
- zk (1)
- ibm (1)
- git (1)
- mvn (1)
- jms (1)
- uml (1)
最新评论
在Maven的依赖管理中,经常会用到依赖的scope设置。这里整理下各种scope的使用场景和说明,以及在使用中的实践心得。 scope的使用场景和说明 1.compile 编译范围,默认scope,在工程环境的classpath(编译环境)和打包(如果是WAR包,会包含在WAR包中)时候都有效。 2.provided 容器或JDK已提供范围,表示该依赖包已经由目标容器(如tomcat)和JDK提供,只在编译的classpath中加载和使用,打包的时候不会包含在目标包中。最常见的是j2ee规范相关的servlet-api和jsp-api等jar包,一般由servlet容器提供,无需在打包到war包中,如果不配置为provided,把这些包打包到工程war包中,在tomcat6以上版本会出现冲突无法正常运行程序(版本不符的情况)。 3.runtime 一般是运行和测试环境使用,编译时候不用加入classpath,打包时候会打包到目标包中。一般是通过动态加载或接口反射加载的情况比较多。也就是说程序只使用了接口,具体的时候可能有多个,运行时通过配置文件或jar包扫描动态加载的情况。典型的包括:JDBC驱动等。 4.test 测试范围,一般是单元测试场景使用,在编译环境加入classpath,但打包时不会加入,如junit等。 5.system 系统范围,与provided类似,只是标记为该scope的依赖包需要明确指定基于文件系统的jar包路径。因为需要通过systemPath指定本地jar文件路径,所以该scope是不推荐的。如果是基于组织的,一般会建立本地镜像,会把本地的或组织的基础组件加入本地镜像管理,避过使用该scope的情况。 实践: provided是没有传递性的,也就是说,如果你依赖的某个jar包,它的某个jar的范围是provided,那么该jar不会在你的工程中依靠jar依赖传递加入到你的工程中。 provided具有继承性,上面的情况,如果需要统一配置一个组织的通用的provided依赖,可以使用parent,然后在所有工程中继承。
发表评论
-
adfasdfsdf
2017-03-23 08:38 502package com.twsz.creative.elv ... -
经典技术书籍
2016-12-08 11:00 423这个列表包括了 100 多本经典技术书籍,涵盖:计算机系统 ... -
分割字符串
2016-11-18 18:57 508@Test public void test2() { ... -
BD音乐部分接口
2016-11-15 15:45 685歌曲ID 详细信息接口:http://tingapi.ti ... -
限速器
2016-09-30 16:28 493package test.date; import ... -
Twitter snowFlake
2016-09-19 22:22 418package com.netty.test.netty4 ... -
Spring BOOT生成web项目
2016-08-29 17:46 806https://github.com/spring-pro ... -
获取IP地址
2016-08-29 17:31 582import java.net.Inet4Address; ... -
Java Performance Tuning Guide
2016-08-29 15:14 339http://java-performance.info/ ... -
Nexus
2016-08-26 00:51 4132、创建解压目录,并将apache-maven-3.0-b ... -
Chain
2016-08-25 12:25 359public static void main(Strin ... -
Spring Boot
2016-08-23 12:50 518package com; import org.sp ... -
JAVA Seriesization
2016-08-16 15:28 515http://www.th7.cn/Program/And ... -
字节码
2016-08-12 19:42 479http://www.blogjava.net/libin ... -
回调在JSMTemplate的位置
2016-08-11 21:55 325package test; public class ... -
原生activeMQ支持
2016-08-10 20:40 428http://www.cnblogs.com/xwdrea ... -
activeMQ
2016-08-09 13:06 393http://www.open-open.com/lib/ ... -
logback
2016-08-05 10:45 485logback logback.xml常用配置详解(二)& ... -
uml
2016-08-03 21:32 361UML建模语言7种图(以银行ATM系统为例) http: ... -
过滤字符串
2016-07-25 18:08 647/** 日志对象 **/ private static ...
相关推荐
Maven 中的 Scope 详细说明 Maven 中的 Scope 是一种依赖范围控制机制,用于控制哪些依赖在哪些 classpath 中可用,哪些依赖包含在一个应用中。在 Maven 中,Scope 主要分为五种:compile、provided、runtime、test...
本文将深入探讨"Maven中scope test的使用以及依赖继承传递"这一主题,帮助开发者更好地理解和应用Maven的核心特性。 首先,`scope test`是Maven依赖管理中的一个关键概念。当我们在`pom.xml`文件中为某个依赖设置`...
`<scope>`标签在Maven的依赖管理中扮演着决定依赖范围的角色,它定义了特定的依赖在项目的哪些阶段可用,并决定了依赖是否会被包含在最终的部署包中。本文将详细解析`<scope>provided</scope>`的使用和意义。 `...
在Maven项目管理中,`scope`依赖范围是至关重要的概念,它决定了一个依赖在项目的不同阶段如何被引入和使用。Maven有多种scope类型,每个类型都有特定的适用场景和目的,帮助开发者精确控制项目的依赖关系。 1. **...
<scope>test</scope> ``` 通过以上介绍,我们可以看到Maven 3.0在项目管理和构建过程中扮演着重要角色,其改进和特性极大地简化了Java开发者的日常工作。通过熟练掌握Maven,开发者可以高效地构建、测试和...
<scope>test</scope> ``` Maven通过执行不同的生命周期阶段,如`clean`(清理项目)、`compile`(编译源代码)、`test`(运行测试)、`package`(打包应用)和`deploy`(部署应用),帮助开发者完成整个开发...
此外,书中的内容还会涵盖Maven的依赖管理和解决冲突的方法,如使用 exclusion 标签排除不想要的依赖,以及使用scope属性控制依赖的范围。读者还将了解到Maven仓库的概念,包括本地仓库、远程仓库和中央仓库,以及...
<scope>test</scope> ``` 3. **Maven生命周期与构建过程** Maven拥有一个清晰的生命周期,主要包括`clean`、`default`(或`compile`、`package`、`install`、`deploy`)和`site`三大阶段。在`default`阶段...
<scope>provided</scope> <!-- 添加其他依赖 --> ... ``` ### 四、编写Web应用 在`src/main/java`下创建你的Java类,例如Servlet,实现业务逻辑。在`src/main/webapp/WEB-INF`下编写`web.xml`,配置Servlet...
7. **Dependency Scope (依赖范围)** - Maven 的依赖范围包括 compile、test、provided、runtime、system 和 import。 - 不同的依赖范围决定了该依赖是否会被包含在最终的构建产物中。 8. **排除依赖** - ...
此外,Maven还支持依赖范围(scope),如编译(compile)、测试(test)、运行(runtime)等,以控制依赖在不同阶段的作用。 接下来是"Maven继承"。在大型项目中,多个模块可能共享相同的配置或依赖。Maven的继承...
**Maven完全适用手册概述** Maven是一款强大的Java项目管理和集成工具,它通过XML格式的配置文件(pom.xml)来管理项目的构建、报告和依赖关系。Maven2相较于其前身Maven1进行了大量改进,提供了更高效、简洁的体验...
<scope>test</scope> ``` 6. **Maven仓库** Maven 使用仓库管理依赖,包括本地仓库(默认在用户主目录的`.m2\repository`下)、中央仓库(http://repo1.maven.org/maven2/)和私有仓库(企业内部使用)。 7...
2. **合理管理scope**:理解并正确设置dependency的scope(如compile、runtime、test等),可以有效减少不必要的依赖引入。 3. **使用BOM(Bill of Materials)**:对于多个模块共用相同依赖的情况,可以考虑使用BOM...
在这种情况下,IntelliJ IDEA(简称idea)提供了离线模式来导入Maven项目,充分利用本地已经存在的Maven仓库。以下是详细的操作步骤和相关知识点: 1. **准备离线Maven仓库** 首先,你需要在有网络连接的计算机上...
<scope>test</scope> ``` 通过`mvn compile`命令,Maven会根据POM.xml中的配置,自动下载并管理依赖,编译项目源代码。其他常用命令包括`mvn test`(运行测试)、`mvn package`(打包项目)和`mvn install`...
<scope>test</scope> ``` 其中,`<groupId>`、`<artifactId>`和`<version>`是Maven用来唯一标识一个项目的三个坐标。例如,上述配置文件中的坐标为`com.yidu.maven:Hello:0.0.1-SNAPSHOT`。 #### 七、总结 ...
- **scope**: 作用范围。 在实际开发中,还需要根据项目需求配置具体的依赖库,例如使用Java EE 6.0和Spring MVC等技术栈。 #### 配置Maven远程仓库(私服) 除了中央仓库之外,还可以配置Maven连接到远程仓库...
<scope>test</scope> ``` - `<groupId>`:组织标识符,类似于Java包名的前缀。 - `<artifactId>`:项目名称。 - `<version>`:项目版本号。 - `<dependencies>`:项目的依赖关系列表。 #### 四、构建项目 *...
<scope>test</scope> ``` ### 三、Maven生命周期与构建阶段 Maven的生命周期包括`clean`、`default`和`site`三个阶段。其中,`default`生命周期是最常用的,包含了编译、测试、打包、验证等环节。例如,执行`...