`
sunxboy
  • 浏览: 2871881 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

MAVEN Scope使用说明

 
阅读更多

在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,然后在所有工程中继承。

 

分享到:
评论

相关推荐

    Maven中scope详细说明

    Maven 中的 Scope 详细说明 Maven 中的 Scope 是一种依赖范围控制机制,用于控制哪些依赖在哪些 classpath 中可用,哪些依赖包含在一个应用中。在 Maven 中,Scope 主要分为五种:compile、provided、runtime、test...

    使用Maven管理进行多模块开发案例

    </modules> packaging节点只能指定为pom,modules节点说明由几个模块组合,上面是把我们经常使用的架构分层模式分成一个个组件进行开发dao->service->web层。此pom文档经常还被用来进行一些依赖管理和插件管理,...

    maven-ojdbc7-maven本地离线安装包.zip

    "文档-2.txt" 可能是关于如何在Maven项目中配置和使用这个离线驱动的说明文档,它可能包含如何将ojdbc7添加到Maven的本地仓库以及在pom.xml文件中声明依赖的步骤。 详细使用这个离线安装包的步骤如下: 1. 首先,...

    maven的安装和在eclipse中配置

    4. **验证安装**:打开命令行窗口,输入`mvn -version`,如果能看到Maven的版本信息,说明安装成功。 ### Eclipse中配置Maven插件 1. **安装M2E插件**:Eclipse的Maven集成是通过M2E (Maven Integration for ...

    Maven安装与配置的详细步骤

    在命令行中输入`mvn -version`,如果返回Maven的版本信息,说明安装成功。 **创建项目** 使用Maven创建新项目,执行命令: ``` mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app ``` 这将...

    Win10 环境下Apache Maven的配置文件以及教程

    以下是对Maven配置文件的详细说明以及如何在Win10系统中进行配置的教程。 1. Maven的安装 首先,你需要从Apache官方网站下载最新版本的Maven。下载完成后,解压到你选择的目录,例如`C:\Program Files\Apache\maven...

    eclipse+maven+tomcat集成

    在Eclipse中使用Maven进行项目开发,首先需要创建一个Maven项目。Maven项目通常遵循一定的目录结构,便于统一管理和自动化构建。 - **新建Maven项目**: - 打开Eclipse,选择`File -> New -> Other -> Maven -> ...

    Maven配置教程

    如果输出了Maven的版本信息,则说明配置成功。 **配置Eclipse**:如果使用Eclipse作为开发工具,还需要将Maven集成到Eclipse中。这通常可以通过Eclipse的偏好设置或直接在项目属性中进行配置。 #### 二、使用...

    Maven权威指南 很精典的学习教程,比ANT更好用

    使用Maven Dependency插件进行优化 8.6. 最终的POM 8.7. 小结 II. Maven Reference 9. 项目对象模型 9.1. 简介 9.2. POM 9.2.1. 超级POM 9.2.2. 最简单的POM 9.2.3. 有效POM 9.2.4. 真正的POM 9.3. ...

    ojdbc5.jar ojdbc6.jar maven安装以及pom.xml配置说明

    在Java项目中,通常会使用Maven作为构建工具来管理依赖。Maven通过在项目的pom.xml文件中声明依赖,可以自动下载并管理这些依赖。对于ojdbc6.jar的Maven配置,我们需要在pom.xml文件中添加以下依赖: ```xml ...

    Maven实战.rar

    - 依赖冲突解决:说明Maven的依赖管理策略,如何处理版本冲突以及使用dependencyManagement元素。 5. **Maven构建优化** - 静态资源处理:探讨如何使用Maven处理静态资源文件,如CSS、JavaScript和图片。 - 构建...

    SpringBoot使用Maven打包异常-引入外部jar的问题及解决方案

    这个描述提供了对标题的简要说明,表明本文的主要内容是解决SpringBoot使用Maven打包异常时引入外部jar的问题。 标签:SpringBoot使用Maven打包异常 SpringBoot打包异常引入外部jar 这些标签表明了本文的两个主要...

    5分钟熟悉Maven之中文版官方文档翻译

    4. **验证安装**:打开终端或命令提示符,输入`mvn --version`,如果能看到Maven的版本信息,说明安装成功。 #### 创建新项目 Maven提供了强大的项目创建功能,通过一条命令即可生成标准的项目结构。使用`mvn ...

    maven3.0.4详解

    Maven是一个广泛使用的项目管理和构建工具,由Apache基金会维护。Maven通过一系列规范化的流程和标准,简化了项目的构建和管理过程。它通过一个核心配置文件`pom.xml`(Project Object Model,项目对象模型)来管理...

    IDEA Maven项目使用debug模式运行Tomcat的详细教程

    在开发Java Web应用程序时,IDEA (IntelliJ IDEA) 和 ...以上就是关于"IDEA Maven项目使用Debug模式运行Tomcat的详细教程"的详细说明,希望对你有所帮助。在实际开发中,不断学习和积累经验,才能更好地应对各种挑战。

    5_构建一个简单的基于maven的java项目.zip

    4. 验证安装,打开命令行,输入`mvn -version`,如果显示Maven版本信息,说明安装成功。 **步骤2:创建Maven项目** 1. 在命令行中,使用`mvn archetype:generate`命令创建新项目。例如: ``` mvn archetype:...

    第三课:Maven基本概念与核心配置 (1)(1)1

    - 检查安装是否成功,运行`mvn -version`,如果显示Maven版本信息,说明安装成功。 2. **Maven的基本功能**: - **编译(Compile)**:负责将源代码编译为字节码。 - **测试(Test)**:执行单元测试,确保代码...

    maven下载安装与配置笔记attention-model-for-net

    **验证Maven安装**:打开终端或命令提示符,输入`mvn -version`,如果能看到Maven的版本信息,说明安装成功。 接下来是**Maven的配置**。主要涉及两个文件:`settings.xml`和`pom.xml`。 - `settings.xml`文件通常...

Global site tag (gtag.js) - Google Analytics