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

分级依赖管理

仰雅昶
2023-03-14
    def dependencyVersions = [
                'org.slf4j:slf4j-api' : '1.7.2', 
                'javax.inject:javax.inject' : '1',
                'com.google.code.findbugs:annotations' : '2.0.1',
                'com.typesafe:config' : '1.0.0',
                'ch.qos.logback:logback-classic' : '1.0.9', 
                'com.google.guava:guava' : '14.0',
                'com.google.inject:guice' : '3.0',
                'com.google.inject.extensions:guice-multibindings' : '3.0',
                'com.google.code.gson:gson' : '2.2.2',
                'joda-time:joda-time' : '2.1',
                'com.thoughtworks.paranamer:paranamer' : '2.5.2',
                'org.codehaus.groovy:groovy-all' : '2.0.6',
                'commons-validator:commons-validator': '1.4.0',
                'org.apache.shiro:shiro-core' : '1.2.1',
                'junit:junit-dep' : '4.10',
                'org.mockito:mockito-core' : '1.9.5',
                'org.hamcrest:hamcrest-core': '1.3',
                'org.hamcrest:hamcrest-library': '1.3',
                'org.unitils:unitils-core': '3.3'
             ]

configurations.all {
    resolutionStrategy {
        eachDependency { DependencyResolveDetails details ->  
        def version = dependencyVersions["$details.requested.group:$details.requested.name"]
        if (version != null)
            details.useVersion version
        }
    }
}
Execution failed for task ':counter-module:install'.

共有1个答案

翟志新
2023-03-14

我可能还是漏掉了你问题的一个方面,但我刚刚在文件里注意到了一些东西。

// force certain versions of dependencies (including transitive)
//  *append new forced modules:
force 'asm:asm-all:3.3.1', 'commons-io:commons-io:1.4'
//  *replace existing forced modules with new ones:
forcedModules = ['asm:asm-all:3.3.1']

看来您可以执行以下操作:

def dependencyVersions = [
            'org.slf4j:slf4j-api' : '1.7.2', 
            'javax.inject:javax.inject' : '1',
            'com.google.code.findbugs:annotations' : '2.0.1',
            'com.typesafe:config' : '1.0.0',
            'ch.qos.logback:logback-classic' : '1.0.9', 
            'com.google.guava:guava' : '14.0',
            'com.google.inject:guice' : '3.0',
            'com.google.inject.extensions:guice-multibindings' : '3.0',
            'com.google.code.gson:gson' : '2.2.2',
            'joda-time:joda-time' : '2.1',
            'com.thoughtworks.paranamer:paranamer' : '2.5.2',
            'org.codehaus.groovy:groovy-all' : '2.0.6',
            'commons-validator:commons-validator': '1.4.0',
            'org.apache.shiro:shiro-core' : '1.2.1',
            'junit:junit-dep' : '4.10',
            'org.mockito:mockito-core' : '1.9.5',
            'org.hamcrest:hamcrest-core': '1.3',
            'org.hamcrest:hamcrest-library': '1.3',
            'org.unitils:unitils-core': '3.3'
         ]

force dependencyVersion.collect {k, v -> "$k:$v"}

在我看来,这将实现两个原则。

    null
 类似资料:
  • null null 尝试强制升级的错误日志:“无法解析配置”:reading-condermination-server-quarkus-impl:TestCompileClasspath“的所有文件。 无法解析JUnit:JUnit:4.13。要求方:project:reading-concermination-server-quarkus-impl>找不到满足版本约束的“junit:junit

  • 在Java中开发Gradle插件所需要的确切依赖是什么?理想情况下,我希望从一个著名的存储库(如Maven Central或类似的存储库)获取它。 我有一个具有核心功能的Maven项目,我刚刚添加了两个额外的插件,一个用于Ant,一个用于Maven。它们已经经过测试并正在工作;放轻松!现在,我想为Gradle插件添加第三个模块,以使该功能也可从任何Gradle项目中获得。 null 如果有人能告诉

  • 在gradle构建的部分中声明存储库和在构建的根级别中声明存储库有什么区别。 或 Build.Gradle:

  • When you want to add, upgrade, or remove dependencies there are a couple of different commands you need to know. Each command will automatically update your package.json and yarn.lock files. Adding a

  • 简介 在第三章我们在构建To Do应用的时候学习到了怎么声明对Servlet ApI的依赖,Gradle的领域特定语言使得声明依赖和仓库变得很简单,你只需要在dependencies脚本中声明你所依赖的库,然后你需要告诉构建系统要从哪个仓库里下载依赖。提供了这两个信息,Gradle就能自动解析、下载依赖到你的电脑上,如果有需要会存储在本地缓存中必备以后需要。 这一章我们将介绍Gradle对依赖管理

  • PHP 有很多可供使用的库、框架和组件。通常你的项目都会使用到其中的若干项 - 这些就是项目的依赖。直到最近,PHP 也没有一个很好的方式来管理这些项目依赖。即使你通过手动的方式去管理,你依然会为自动加载器而担心。但现在这已经不再是问题了。 目前 PHP 有两个使用较多的包管理系统 - Composer 和 PEAR。Composer 是 PHP 所使用的最流行的包管理器,然而在很长的一段时间里,