Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >POM中的多个依赖作用域

POM中的多个依赖作用域
EN

Stack Overflow用户
提问于 2011-05-09 18:46:55
回答 6查看 21.1K关注 0票数 37

我的POM中有一个依赖项,需要将其设置为"provided“,以便在编译时不包括它,但它仍然可以在我的项目中引用。当我运行测试时,我希望相同的依赖项的作用域为"test“,这样我就不必手动将jar添加到我的类路径中。有没有办法做到这一点或达到类似的结果?

这背后的原因是,我在我的JBOSS lib目录中提供了一些常见的war,所以我希望使用这些war,并为构建的war保留它们的“提供”范围。但是,当我从命令行运行JUnits时,我希望使用存储库中的jar,而无需手动将其添加到类路径中。

提前感谢

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-02-08 14:44:40

来自maven documentation

提供了,这很像编译,但表明您希望JDK或容器在运行时提供依赖项。例如,在为Java企业版构建web应用程序时,可以将对Servlet API和相关Java EE API的依赖项设置为所提供的范围,因为web容器提供了这些类。此作用域仅在编译和测试类路径上可用,并且不可传递。

我在maven 3.0.3中检查了它的工作情况。我也有同样的问题,我在编译和测试时需要有一个servlet依赖项,但没有编译进去,因为它是随应用程序服务器发行版一起提供的。

票数 30
EN

Stack Overflow用户

发布于 2011-05-10 14:29:37

您可以使用一个概要文件,该概要文件可以将这些依赖项声明为test,也可以将其声明为提供的依赖项--这取决于对您更方便的是什么:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<profiles>
    <profile>
        <id>whatever</id>
        <activation>
            <property>
                <name>env</name>
                <value>whatever</value> 
            </property>
        </activation>
        <dependencies>
            <dependency>
              <groupId>yours</groupId>
              <artifactId>yours</artifactId>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    </profile>
    <profile>
        <id>test</id>
        <activation>
            <property>
                <name>env</name>
                <value>test</value> 
            </property>
        </activation>
        <dependencies>
            <dependency>
              <groupId>yours</groupId>
              <artifactId>yours</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </profile>
</profiles>

这些配置文件可以通过设置属性env来激活,但还有其他方法,f.e.默认激活--看看here吧。

票数 6
EN

Stack Overflow用户

发布于 2011-05-11 08:24:53

尝试声明依赖项两次,每次声明一个作用域。在Maven 2.2.1中工作。

当相同的工件两次出现在不同作用域的依赖关系树中时,在依赖关系解析中会发生令人困惑的事情,但我认为在您的情况下这不应该是问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5941100

复制
相关文章
Maven pom 中配置依赖机制
依赖管理是 Maven 的一个核心特性。管理单个项目的依赖关系非常简单。管理由数百个模块组成的多模块项目和应用程序的依赖关系是可能的。Maven 使用定义良好的类路径和库版本在定义、创建和维护可重复的构建方面帮助很大。
acc8226
2022/05/17
1.9K0
Maven pom 中配置依赖机制
JavaScript中的作用域和作用域链
作用域是在运行时代码中的某些特定部分中变量,函数和对象的可访问性。换句话说,作用域决定了代码区块中变量和其他资源的可见性。可能这两句话并不好理解,我们先来看个例子:
刘亦枫
2020/03/19
2.2K0
JavaScript中的作用域和作用域链
Rust中的作用域及作用域的规则
所有权是 Rust 最独特的特性,它使 Rust 能够在不需要 GC 的情况下保证内存安全。在本章中,我们将讨论所有权以及几个相关特性:借用/切片,以及 Rust 如何在内存中布局数据。
端碗吹水
2022/06/02
4K1
Rust中的作用域及作用域的规则
SpringBoot爬虫依赖pom
<dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-core</artifactId> <version>0.7.3</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactI
名字是乱打的
2022/05/13
3250
js中的作用域
相信自从es6出来之后,你一定多少知道或者已经在项目中实践了部分的块级作用域,在函数或者类的内部命名变量已经在使用let了,但是你知道它真正的作用是什么吗?又是因为什么我们要用这个块级作用域,本文与你一起探讨块级作用域的场景以及所有细节问题。
RobinsonZhang
2018/08/28
3.2K0
maven pom 的 name 作用
很多人拿 description 来写中文名,实际上这里应该写描述,name 写中文名更合适些
林万程
2020/05/27
1.1K0
quarkus依赖注入之二:bean的作用域
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于bean的作用域(scope) 官方资料:https://lordofthejars.github.io/quarkus-cheat-sheet/#_injection 作为《quarkus依赖注入》系列的第二篇,继续学习一个重要的知识点:bean的作用域(scope),每个bean的作用域是唯一的,不同类型的作用域,决定了各个bean实例的生命周期,例
程序员欣宸
2022/04/13
5770
quarkus依赖注入之二:bean的作用域
【Groovy】Groovy 脚本调用 ( Groovy 脚本中的作用域 | 本地作用域 | 绑定作用域 )
在 Groovy 脚本中 , 定义两个变量 , 一个使用 def 声明 , 一个直接声明变量 ;
韩曙亮
2023/03/30
1.3K0
【Groovy】Groovy 脚本调用 ( Groovy 脚本中的作用域 | 本地作用域 | 绑定作用域 )
maven 工程 pom.xml 中 relativePath 的作用
转自:https://blog.csdn.net/zwt0909/article/details/52218222
微风-- 轻许--
2019/07/01
5.1K0
spring中Bean的作用域
在Spring中,那些组成你应用程序的主体(backbone)及由Spring IoC容器所管理的对象,被称之为bean。 简单地讲,bean就是由Spring容器初始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什么区别了。 而bean定义以及bean相互间的依赖关系将通过配置元数据来描述。
MickyInvQ
2020/09/27
7970
站住,Maven依赖的scope作用域,还记得几个?
在POM中,<dependency>引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:
程序员小明
2019/05/31
7210
站住,Maven依赖的scope作用域,还记得几个?
在POM中,<dependency>引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:
乱敲代码
2019/06/03
5510
[1122]maven pom relativePath属性的作用
搭建maven项目,子模块指定父模块试,经常会在parent下面出现relativePath类似下面:
周小董
2022/04/13
6780
Maven依赖的作用域你到底用对了没有
Maven是目前Java开发主要使用的依赖管理构建工具之一,但是很多人在引用依赖的时候直接引用坐标,而没有考虑依赖的作用范围,结果导致出现这样和那样的问题。今天胖哥就来说明一下Maven引用依赖的一个要点概念——作用域。
码农小胖哥
2022/10/05
5570
Maven依赖的作用域你到底用对了没有
Python中变量的作用域
我们在写代码过程中会用到很多变量,这些变量会出现在各种代码块中,有的出现在函数块里,有的在函数块外,例如:
py3study
2020/01/19
1.1K0
Spring中bean的作用域
(1)singleton:默认作用域,单例bean,每个容器中只有一个bean的实例。 (2)prototype:为每一个bean请求创建一个实例。 (3)request:为每一个request请求创建一个实例,在请求完成以后,bean会失效并被垃圾回收器回收。 (4)session:与request范围类似,同一个session会话共享一个实例,不同会话使用不同的实例。 (5)global-session:全局作用域,所有会话共享一个实例。如果想要声明让所有会话共享的存储变量的话,那么这全局变量
红目香薰
2022/11/29
5390
Java 中变量的作用域
变量的作用域是一个程序的重要组成部分。因为它决定了某个时候每个地方某个变量是否可访问。与 C/C++ 一样。静态语言的作用域在编译期就是确定的。而且独立于函数调用堆栈。
技术从心
2019/08/06
1.9K0
Java 中变量的作用域
Spring中bean的作用域
1、singleton作用域 当一个bean的作用域设置为singleton, Spring IOC容器只会创建该bean定义的唯一实例。 2、prototype  prototype作用域部署的bean,每一次请求都会产生一个新的bean实例,相当与一个new的操作。 3、request request表示该针对每一次HTTP请求都会产生不同的bean实例,只有在web应用中使用Spring时,该作用域有效。 4、session session作用域表示该针对每一次HttpSession请求都会产生不同的bean实例。只有在web应用中使用Spring时,该作用域有效。 5、global session 每个全局的HttpSession对应一个Bean实例。典型情况下,仅在使用portlet context的时候有效。只有在web应用中使用Spring时,该作用域有效。 6.自定义作用域 在Spring 2.0中,Spring的bean作用域机制是可以扩展的。这意味着,你不仅可以使用Spring提供的预定义bean作用域; 还可以定义自己的作用域,甚至重新定义现有的作用域(不提倡这么做,而且你不能覆盖内置的singleton和prototype作用域)。
week
2018/08/27
5720
理解 JavaScript 中的作用域
作用域是 JavaScript 中的一个重要而又模糊的概念。只有正确使用 JavaScript 作用域,才能使用优秀的设计模式,帮助你规避副作用。本文中,我们将会详细分析 JavaScript 的不同类型的作用域,以及为了写出更好的代码,介绍它们是如何工作的。
疯狂的技术宅
2019/03/28
9400
Python 中的变量作用域
通常,在块中定义的变量仅在该块中可用。在街区外无法到达。这样的变量称为局部变量。形式参数标识符也表现为局部变量。
很酷的站长
2023/08/15
1750
Python 中的变量作用域

相似问题

POM依赖项不起作用(Eclipse、Maven、POM)

10

Pom依赖

20

为Maven依赖声明多个作用域的正确方法?

40

句柄创建具有多个作用域的单个依赖项

14

多个POM文件之间的共享依赖关系

57
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文