无版本的gradle依赖项

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无版本的gradle依赖项相关的知识,希望对你有一定的参考价值。

当我这样做

dependencies {
    file('libs/something.jar')
}

我的发行版中有something.jar。但是,当我将依赖项推送到远程存储库(常春藤或maven)并希望从那里使用它时,gradle总是会向jar添加一个版本后缀。

dependencies {
    compile group: 'org.company', name: 'something', version: '1.0'
}

结果在something-1.0.jar

即使这样

dependencies {
    compile group: 'org.company', name: 'something'
}

结果在something-.jar(注意破折号)。

我可以以某种方式阻止存储库依赖项具有版本吗?

(我的动机是jar是第三方jar,我不想在git repo中使用它,但我也不希望它的名字改变。)

答案

正如您所说,您可以在工具库中为工件提供一个版本。您只是不希望应用程序中的jar版本。你可以做到

configurations {
    something { transitive = false }
}
dependencies {
    something 'org.company:something:1.0'
    something 'org.company:something-else:1.0'
    compile files(tasks['dummyTask'])
    compile 'org.foo:some-normal-dep:1.1'
}
task copySomething(type:Copy) {
    from configurations.something
    into "$buildDir/something"
    rename '(.+)-.+?\.jar', '$1.jar'
}
task dummyTask {
    dependsOn copySomething
    inputs.dir "$buildDir/something"
    outputs.files fileTree("$buildDir/something")
}

这方面的主要推动因素是Project.files(...)可以接受Task

另一答案

Maven存储库要求每个工件都有一个版本。我认为可行的方法是在下载工件时或之后剥离版本号。 Maven可以选择在构建战争或耳朵时删除版本号,我想在Gradle中有类似的东西。

以上是关于无版本的gradle依赖项的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Gradle 依赖项更新到最新版本

如何使用 Gradle 版本目录知道是不是存在依赖项更新

Gradle - 获取依赖项的最新发布版本

如何从 Java 代码下载 Gradle 依赖项?

Android Gradle 插件Gradle 依赖管理 ⑤ ( dependencies 依赖项拆分 | 依赖组 | 依赖名称 | 依赖版本号 | 动态指定依赖版本号 | 使用命令行查看模块 )

如何在gradle构建文件中将哪个依赖项和依赖项版本打包到war文件中?