`

Maven scope 类型

阅读更多
1. compile

编译范围。默认scope。

在工程编译(classpath)和打包时(如war, ear等,会包含该jar文件)有效。


2. runtime

运行时范围,用于运行和测试。

编译代码时不需要该jar包,打war包时会被包含到其中,供容器动态加载其中的类。
在面向接口编程中应用广泛,编译的是接口,运行时通过读取配置文件获取注解等途径加载具体实现类并实例化。

<dependency>
  <groupId>org.codehaus.groovy</groupId>
  <artifactId>groovy</artifactId>
  <version>1.8.3</version>
  <scope>runtime</scope>
</dependency>



3. provided

已提供范围。

表明该jar包已由容器(jetty, tomcat等)或JDK提供,只在编译时使用,不会放到war包中。如J2EE规范的servlet-api和jsp-api等jar包,已由servlet容器提供,war包中有不同版本的包会引起版本冲突,导致容器启动失败。

<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.0</version>
  <scope>provided</scope>
</dependency>



4. test

测试范围。

供src/test/java目录下的单元测试类编译和运行,不会打包到war包中,如TestNG, JUnit等:

<dependency>
  <groupId>org.testng</groupId>
  <artifactId>testng</artifactId>
  <version>6.4</version>
  <scope>test</scope>
</dependency>


5. system

系统范围。

当转换ant工程为maven工程时,为了最大程度利用原有类库,减少更改,通过scope的system形式引用原类库路径的jar包。
另外,如果较早的jar包没有版本号,也没有按照maven库的路径规则存放,可以通过此种方式引用:

<dependency>
	<groupId>com.sun</groupId>
	<artifactId>btrace</artifactId>
	<version>1.0</version>
	<scope>system</scope><!-- maven从systemPath去找对应的jar包 -->  
	<systemPath>D:\Program Files\btrace-bin\build\btrace-client.jar</systemPath>
</dependency>

注:当scope为system时,groupId, artifactId和version可以填任意非空值,但去除这三个属性会报错。
分享到:
评论

相关推荐

    Maven2 的新特性.7z

    Maven2也考虑到:不同类型的项目需要拥有不同的目录结构。如创建web项目,可以使用命令: mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-...

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

    Including and Excluding Dependencies by Scope 12.5.4.4. Fine Tuning: Dependency Includes and Excludes 12.5.4.5. Transitive Dependencies, Project Attachments, and Project Artifacts 12.5.4.6. ...

    基于MyEclipse搭建maven+springmvc整合图文教程(含源码0

    选择项目类型 在Artifact Id中选择maven-archetype-webapp 输入Group ID和 Artifact ID,以及Package Group ID一般写大项目名称。Artifact ID是子项目名称。 例如Spring的web包,Group ID:org.springframework,...

    ivy-maven-plugin

    scope一个字符串(默认“编译”)来定义将依赖项添加到哪个 Maven 范围。 dependencies依赖元素列表,格式与 每个依赖元素的字段对应于它们的 Ivy 等价物,如下所示: groupId是一个常春藤模块组织 artifactId是...

    HelloSpring.zip

    我的博客中“maven环境搭建及Spring入门”的项目代码。在idea中运行成功。 1。创建IOC容器 2。通过xml装配对象 【简单类型用value、复杂(引用类型)用ref、数组,集合,Map的装配】 3。IOC容器获取bean的方式 * ...

    ojdbc6(此包解决mybatis_plus查询时分秒为0问题).7z

    ojdbc6(此包解决mybatis_plus查询时分秒为0问题),springboot项目+oracle11g就用这个jdbc就行,放在项目的resources目录下... &lt;scope&gt;system&lt;/scope&gt; ${pom.basedir}/src/main/resources/lib/ojdbc6.jar &lt;/dependency&gt;

    SSM框架整合

    项目类型为:Maven Pproject 2、SSM整合 2.1、导入整合相关的jar包(Maven) pom.xml文件 &lt;project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 ...

    ojdbc6-11.1.0.7.0.jar oracle驱动

    它包含 JDBC 驱动程序类,但不包含在 Oracle Object 和 Collection 类型中支持 NLS 的类。 maven 地址 &lt;groupId&gt;com.oracle&lt;/groupId&gt; &lt;artifactId&gt;ojdbc6 &lt;version&gt;11.1.0.7.0 &lt;scope&gt;test&lt;/scope&gt; ...

    大数据java操作hive.pdf

    eclipse操作步骤(要配好 操作步骤(要配好maven创建 创建maven项⽬) 项⽬) maven项⽬需要的包,在 项⽬需要的包,在"pom.xml"中添加 中添加 &lt;dependency&gt; &lt;groupId&gt;org.apache.hive &lt;/groupId&gt; &lt;artifactId&gt;hive...

    基于springboot演示resuful api、mock请求、validate验证、异常捕捉、aop切面编程+源代码+文档说

    &lt;scope&gt;import&lt;/scope&gt; &lt;groupId&gt;org.apache.commons &lt;artifactId&gt;commons-lang3 ${commons-lang3.version} &lt;groupId&gt;org.projectlombok &lt;artifactId&gt;lombok &lt;groupId&gt;org.springframework.boot...

    浮士德:另一种彩票。

    另一种类型的彩票... Faust是一种专为ClansPro设计的彩票。 什么是没有一点混乱的氏族? 浮士德介绍了一个简单的彩票。 如果您敢的话,购买门票并有机会赢大钱。 API 通过Maven导入 &lt; groupId&gt;...

    sedis:SQL for Redis

    sedis SQL for Redis 基于实现了通过jdbc的方法连接 快速入门 .进入项目根目录,使用maven打包 mvn clean package打包完成后,会在target的目录里面生成一个sedis-0.1-bundle.... &lt;scope&gt;system&lt;/scope&gt; &lt;systemPath&gt;

    prototype:Prototype 是一个用于从原型定义中生成 Java 对象的库

    Prototype 提供了一种简洁的语法来定义数据(和值)类型。 它使开发人员无需编写重复的样板代码并编写它而不是他们。 基于原型的类是不可变的,默认情况下不允许null作为字段值。 可以使用提供的注释覆盖此行为。 ...

    mashbox:Mashbox 是 GWT 样板的 Java 注释处理器

    混搭 注:该项目已停止。 这里的源代码仅供参考。 它有点工作,但它不知道泛型类型。 Mashbox 是(另一个)用于 GWT 样板代码的 Java ... &lt;scope&gt;compile&lt;/scope&gt; 执照 Copyright 2014 Tercio Gaudencio Filho. Li

    JavaEE开发的颠覆者SpringBoot实战[完整版].part2

    2.1 Bean 的Scope 30 2.1.1 点睛 30 2.1.2 示例 31 2.2 Spring EL 和资源调用. 33 2.2.1 点睛 33 2.2.2 示例 33 2.3 Bean 的初始化和销毁 37 2.3.1 点睛 37 2.3.2 演示 38 2.4 Profile 40 2.4.1 点睛 40 2.4.2 演示 ...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part3

    2.1 Bean 的Scope 30 2.1.1 点睛 30 2.1.2 示例 31 2.2 Spring EL 和资源调用. 33 2.2.1 点睛 33 2.2.2 示例 33 2.3 Bean 的初始化和销毁 37 2.3.1 点睛 37 2.3.2 演示 38 2.4 Profile 40 2.4.1 点睛 40 2.4.2 演示 ...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part1

    2.1 Bean 的Scope 30 2.1.1 点睛 30 2.1.2 示例 31 2.2 Spring EL 和资源调用. 33 2.2.1 点睛 33 2.2.2 示例 33 2.3 Bean 的初始化和销毁 37 2.3.1 点睛 37 2.3.2 演示 38 2.4 Profile 40 2.4.1 点睛 40 2.4.2 演示 ...

    SpringMVC-Mybatis-Shiro-redis-master 权限集成缓存中实例

    ... ...建议自己下载源码,让Demo跑起来,然后跑的更快,有问题加群解决。 声明: ... &lt;scope&gt;provided&lt;/scope&gt; 如果还是不能解决问题,请在官方群(群号:259217951)内搜索“jstl” 如图下载依赖包。

Global site tag (gtag.js) - Google Analytics