当前位置: 首页 > 知识库问答 >
问题:

渐变解决策略不更新运行时

邢浩邈
2023-03-14

在我的gradle构建脚本中,我强制使用spring framework的3.1.0版本库。我看到这个解析策略的改变被应用于compile、testCompile和testRuntime,但不适用于从“gradle dependencies”输出中可见的运行时。

allprojects {
        configurations.all {
            resolutionStrategy.eachDependency { DependencyResolveDetails details ->
                if ( details.requested.group == 'org.springframework' ) { 
                    details.useVersion = '3.1.0.RELEASE'
                }
            }
        }
    }

渐变依赖项输出:

compile - Compile classpath for source set 'main'.
+--- org.codehaus.groovy:groovy-all:2.1.1
+--- com.company.mod1:module1:2.21.2

|--org。springframework:SpringCore:3.0.0。RC1-

  |    |    +--- org.springframework:spring-asm:3.1.0.RELEASE
    |    |    \--- commons-logging:commons-logging:1.1.1
    |    +--- org.springframework:spring-context:3.0.0.RC1 -> 3.1.0.RELEASE
    |    |    +--- org.springframework:spring-aop:3.1.0.RELEASE
    |    |    |    +--- aopalliance:uopalliance:1.0
    |    |    |    +--- org.springframework:spring-asm:3.1.0.RELEASE


runtime - Runtime classpath for source set 'main'.
+--- org.codehaus.groovy:groovy-all:2.1.1
+--- com.company.mod1:module1:2.21.2
|    +--- org.springframework:spring-core:3.0.0.RC1
|    |    +--- org.springframework:spring-asm:3.0.0.RC1
|    |    \--- commons-logging:commons-logging:1.1.1
|    +--- org.springframework:spring-context:3.0.0.RC1
|    |    +--- aopalliance:aopalliance:1.0
|    |    +--- org.springframework:spring-asm:3.0.0.RC1
|    |    +--- org.springframework:spring-aop:3.0.0.RC1
|    |    |    +--- aopalliance:aopalliance:1.0
|    |    |    +--- org.springframework:spring-asm:3.0.

你可以编译3.1.0编写的依赖项。但运行时没有发布。因此,当我为我的项目jar分发zip时,我看到了3.0.0。版本spring库。

这是我的覆盖策略的问题吗?还是解决策略不影响运行库库?我需要在distZip任务中包含编译依赖项吗?但这可能会在存档中创建重复的lib。

共有1个答案

萧献
2023-03-14

找到了原因。resolutionStrategy代码方法位于构建脚本的底部。一旦我把它移到所有与子项目相关的构建代码之上,它也反映了运行时的依赖关系。

 类似资料:
  • app/movie.component.ts 让我们再回顾一下它背后的逻辑。 当用户单击按钮时,调用方法并更新actor对象的属性。 当变化检测分析绑定到AppComponent模板的属性时,它将看到与之前相同的景象: Is slogan !== previousSlogan No, it’s the same. Is ? No, it’s the same. 让我们重新运行应用程序,但这次我们将

  • Kali Linux和Debian的源有紧密的联系,因此安全更新会像Debian发行版一样频繁,更新的都是debian维护的包(大部分).其它包则由Kali团队尽力的维护.

  • 我想做一个递归算法来解决做出改变的问题。是否可以使用非动态方法,不仅返回最小数量的硬币,还返回用于构成给定值的硬币集, 例如,给定值6和硬币组=[1,3,4]。有没有可能创建一个不记忆的递归算法,可以返回最小数量的硬币(2)和硬币集(3,3)? 编辑:这是我当前的算法,但它只返回硬币总数: 将返回3,但我希望它也提供集合{5,5,1}。第二个参数(2)是硬币的数量减去1。

  • 像这样,我有两个线程。SleepRunner线程在列表中添加一些随机数,然后将标志更改为true并Hibernate。主线程等待SleepRunner线程,直到SleepRunner对象中的标志从false变为true,然后主线程将中断SleepRunner线程,程序将结束。 但问题是,当主线程中的当循环没有正文代码时,变量“运行者”在循环内没有更新,换句话说,当睡眠运行者线程将标志从假改为真后,

  • 我对策略变量${aws: username}感到困惑,即它是我在AWS帐户中登录的IAM用户名,还是我在创建实例时手动输入的标记值。 实际上,我想实现ec2实例的唯一所有者应该是执行操作

  • 基本思想是用户会话应该很长,并且根据用户活动继续/禁用。然而,由于我们不能撤销令牌,所以令牌应该是短期的,比如15分钟。如果我们可以在令牌过期后刷新令牌,那么用户会话可以继续。 经过一些研究,我发现有两种实现: 一个用于刷新过期,一个用于令牌过期。刷新TTL比令牌到期TTL长。如果客户端发现当前令牌已过期但仍可以刷新,则将调用服务器刷新api。新令牌将有新的到期时间和刷新到期时间。如果两个TTL都