`

dependency的scope属性

 
阅读更多

compile(编译范围)

compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath中可用,同时它们也会被打包。就是在(mvn package)的时候也会将这个依赖加入进去

意思就是:编译范围有效,在编译和打包时都会存储进去

 

provided(已提供范围)

provided依赖只有在当JDK或者一个容器已提供该依赖之后才使用。例如,如果你开发了一个web应用,你可能在编译classpath中需要可用的Servlet API来编译一个servlet,但是你不会想要在打包好的WAR中包含这个Servlet API;这个Servlet API JAR由你的应用服务器或者servlet容器提供。已提供范围的依赖在编译classpath(不是运行时)可用。它们不是传递性的,也不会在执行mvn package时被打包。

 

runtime(运行时范围)

runtime依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你可能在编译的时候只需要JDBC API JAR,而只有在运行的时候才需要JDBC驱动实现。即在运行时才会依赖,编译时不会依赖

 

test(测试范围)

test范围依赖 在一般的 编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用。

 

system(系统范围)

system范围依赖与provided类似,但是你必须显式的提供一个对于本地系统中JAR文件的路径。这么做是为了允许基于本地对象编译,而这些对象是系统类库的一部分。这样的构件应该是一直可用的,Maven也不会在仓库中去寻找它。。如果你将一个依赖范围设置成系统范围,你必须同时提供一个systemPath元素。注意该范围是不推荐使用的(你应该一直尽量去从公共或定制的Maven仓库中引用依赖)。

分享到:
评论

相关推荐

    Maven的Dependency测试

    在`<dependencies>`标签下添加测试框架的依赖,如`<dependency>`标签内`<classifier>`属性用于指定特定的测试类库,如`javadoc`或`sources`。 5. **测试配置** Maven的测试配置可以在`pom.xml`中通过`<build>...

    Maven引入本地Jar包并打包进War包中的方法

    scope属性指定了Jar包的来源于本地文件,而systemPath属性则指定了本地文件的所在路径。例如,下面是对cpdetector Jar包的配置: ``` <dependency> <groupId>cpdetector <artifactId>cpdetector <version>1.0.10 ...

    JSF 如何傳遞物件 在不同頁面 不同controller in request scope1

    - Conversation Scope是另一种选择,它在多个请求之间保持状态,但需要CDI(Contexts and Dependency Injection)支持,并且实现起来相对复杂。 参考链接: - ...

    知识共享-Spring注入属性值案例(雷惊风).

    它提供了全面的基础架构支持,包括依赖注入(Dependency Injection, DI)、面向切面编程(Aspect-Oriented Programming, AOP)、数据访问/集成、事务管理等。Spring的核心特性之一就是依赖注入,它简化了组件之间的...

    Java开发学习(三)----Bean基础配置及其作用范围.doc

    - **scope属性**:bean的作用范围决定了Spring容器如何管理bean的生命周期和实例化策略。 - **单例(singleton)**:这是默认的bean作用范围。当设置为`singleton`时,Spring容器会在启动时创建bean的一个实例,并...

    myspringlearning:Spring学习项目

    -VS--namebeans.xml简单属性的注入UserDAOImpl连接池需要bean的scope属性singleton单例prototype原型官方文档,scope集合注入设置好set,get方法在bean中设置好值自动装配auto-wire生命周期lazy-initinit-method,...

    Maven类包冲突终极解决小技若干

    - **原理**:通过调整 `<scope>` 属性,可以控制依赖项在不同生命周期阶段的行为。例如,设置为 `test` 的依赖项仅在测试阶段可用,从而减少了生产环境中的冲突风险。 ```xml <dependency> <groupId>...

    AngularJs2630

    通常,`scope`没有前导的美元符号,它是`$scope`的一个属性,在指令(directives)内部使用,特别是自定义指令时。当我们在指令的`link`函数中使用`scope`时,它表示的是当前指令作用域内的模型对象,而不是全局的`$...

    eclipse搭建springCloud项目.docx

    <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.boot <artifactId>spring-boot-dependencies ${spring-boot.version} <type>pom <scope>import</scope> </dependency> ...

    韩顺平Spring笔记.pdf

    此外,Bean的scope属性允许我们定义其生命周期和可见性,例如单例(singleton)、原型(prototype)等,这会影响Bean的创建和管理。在入门案例中,可以通过配置不同的scope属性,理解不同scope如何影响Bean的实例化...

    EL表达式所用的jar包.rar

    EL(Expression Language)表达式是JavaServer Pages(JSP)2.0及更高版本中引入的一种强大而简洁的脚本语言,用于访问JavaBeans组件的属性和方法。它简化了在JSP页面中获取和设置数据的过程,提高了代码的可读性...

    Spring-IOC实例

    在上述XML配置中,我们使用了setter注入,通过`<property>`标签设置`dependency`属性。在代码中,`ExampleService`类会如下定义: ```java public class ExampleService { private Dependency dependency; ...

    AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析

    当我们在控制器中修改scope属性时,视图会自动更新,反之亦然。 搜索作用域的规则遵循原型链原理:首先在当前作用域中查找属性,如果没有找到,则会向上遍历父级作用域,直到找到$rootScope。这使得数据能够在不同...

    Lombok笔记文档_*************************

    如果注解在属性级别,那么只会为该特定属性生成getter或setter。此外,可以使用`AccessLevel`指定访问级别,例如`@Getter(AccessLevel.PRIVATE)`。 2. `@ToString`:此注解用于生成一个`toString()`方法,该方法...

    基于java的企业级应用开发:Bean的配置.ppt

    这里,`dependentBean` 通过 `dependency` 属性引用了 `dependencyBean`,实现了依赖注入。 总结起来,Spring中的Bean配置涉及以下几个关键点: 1. Bean是Java类的实例,由Spring容器管理。 2. XML配置文件是常用的...

    根据pom.xml下载依赖

    而`dependency plugin`则可以帮助我们在命令行中直接执行`mvn dependency:get`命令,根据指定的坐标下载单个依赖。 综上所述,“根据pom.xml下载依赖”这一过程是Java开发中的基础步骤,也是Maven的核心功能之一。...

    spring 装配demo

    public void setDependency(Dependency dependency) { this.dependency = dependency; } } ``` 5. **Component Scanning**: Spring会扫描指定的包及其子包,寻找带有特定注解的类,并自动将其注册为Bean。 6....

Global site tag (gtag.js) - Google Analytics