Maven Dependency Scope
来源:互联网 发布:加州州立大学知乎 编辑:程序博客网 时间:2024/05/27 20:42
Maven Dependency Scope
- 博客分类:
- Maven
官方API描述
Dependency scope 是用来限制Dependency的作用范围的, 影响maven项目在各个生命周期时导入的package的状态。
自从2.0.9后,新增了1种,现在有了6种scope:
- compile
默认的scope,表示 dependency 都可以在生命周期中使用。而且,这些dependencies 会传递到依赖的项目中。 - provided
跟compile相似,但是表明了dependency 由JDK或者容器提供,例如Servlet AP和一些Java EE APIs。这个scope 只能作用在编译和测试时,同时没有传递性。 - 使用这个时,不会将包打入本项目中,只是依赖过来。
- 使用默认或其他时,会将依赖的项目打成jar包,放入本项目的Lib里
- when building a web application for the Java Enterprise Edition, you would set the dependency on the Servlet API and related Java EE APIs to scopeprovided because the web container provides those classes. This scope is only available on the compilation and test classpath, and is not transitive.
- <!-- Servlet -->
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.5</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.servlet.jsp</groupId>
- <artifactId>jsp-api</artifactId>
- <version>2.1</version>
- <scope>provided</scope>
- </dependency>
- runtime
表示dependency不作用在编译时,但会作用在运行和测试时 - test
表示dependency作用在测试时,不作用在运行时。 - system
跟provided 相似,但是在系统中要以外部JAR包的形式提供,maven不会在repository查找它。 例如:
<project>
...
<dependencies>
<dependency>
<groupId>javax.sql</groupId>
<artifactId>jdbc-stdext</artifactId>
<version>2.0</version>
<scope>system</scope>
<systemPath>${java.home}/lib/rt.jar</systemPath>
</dependency>
</dependencies>
...
</project>
- import (Maven 2.0.9 之后新增)
它只使用在<dependencyManagement>中,表示从其它的pom中导入dependency的配置,例如: This scope is only used on a dependency of type pom in the <dependencyManagement> section. It indicates that the specified POM should be replaced with the dependencies in that POM's <dependencyManagement> section. Since they are replaced, dependencies with a scope of import do not actually participate in limiting the transitivity of a dependency.
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>maven</groupId>
<artifactId>B</artifactId>
<packaging>pom</packaging>
<name>B</name>
<version>1.0</version>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>maven</groupId>
<artifactId>A</artifactId>
<version>1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>test</groupId>
<artifactId>d</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
B项目导入A项目中的包配置
- maven dependency scope
- Maven dependency scope
- Maven Dependency Scope
- Maven Dependency Scope
- Maven Dependency Scope
- Maven Dependency Scope
- Maven Dependency Scope用法
- Maven Dependency Scope
- maven dependency scope 含义作用
- Maven-pom.xml -Dependency Scope 区别
- Dependency Scope
- Maven中的dependency的scope作用域详解
- maven dependency中scope=compile 和 provided区别
- maven dependency中scope=compile 和 provided区别
- maven之非继承引用dependency-‘ import scope ’
- maven dependency中scope=compile 和 provided区别
- maven dependency中scope=compile 和 provided区别
- Maven中的dependency的scope作用域详解
- 虚函数—类的多态性
- 解递归式的方法总结
- PAT (Basic Level) Practise (中文)1036. 跟奥巴马一起编程(15)
- linux 关闭停用ipv6方法
- Spark1.4从HDFS读取文件运行Java语言WordCounts并将结果保存至HDFS
- Maven Dependency Scope
- FORM表单中onclick()、submit()与onsubmit()的问题
- 如何将Eclipse中的项目迁移到Android Studio 中
- paint 画笔的一些属性
- HTTP协议的C/S模式的信息交换过程
- java 重定向和转发的区别
- 设计模式--原型模式
- linux内核list模块的使用
- Tarjan应用:求割点/桥/缩点/强连通分量/双连通分量/LCA(最近公共祖先)