gpt4 book ai didi

gradle - Gradle自定义字符串表示法在依赖中

转载 作者:行者123 更新时间:2023-12-03 05:23:10 25 4
gpt4 key购买 nike

我正在为我生产的所有 Artifact 创建一个全局存储库。现在,我已经创建了一个S3存储桶作为存储 Artifact 的存储库。
由于没有组( Artifact 是全局的),因此我最终将名称复制为组,因此依赖项的当前表示法是Name:Name:Version。为此,我创建了一个扩展函数,它带有两个参数,即名称(我要添加到项目中的依赖项)和版本。
例如,如果要在项目中添加依赖项implementation("Name", "1.0"),则添加Name。可以将其翻译为implementation("Name:Name:1.0")并可以正常工作,但我觉得它有点丑陋,并且可能会造成混淆,IntelliJ中External Libraries树中的依赖项显示为Gradle: Name:Name:1.0,该名称越长,它就越难看。
问题是,是否有可能编写一个自定义符号来让我只执行implementation("Name", "1.0")而无需扩展功能,以便仅显示Gradle: Name:1.0,而其他所有操作都在后台处理?
我查看了ParsedModuleStringNotation类,似乎需要更改(创建自己的),但是对象的创建是硬编码的,我不确定如何从那里继续。

最佳答案

如果您将S3存储库声明为flatDir,则可以选择要查询的内容
https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.dsl.RepositoryHandler.html
flatDir(参数)
添加一个解析器,该解析器在许多目录中查找 Artifact 。 Artifact 应位于指定目录的根目录中。解析程序将忽略在构建脚本的“依赖关系”部分中指定的任何组/组织信息。如果仅使用这种解析器,则可以指定诸如“:junit:4.4”之类的依赖项,而不是“junit:junit:4.4”。
能够如下工作

repositories {
def s = project.rootDir.toString() + "/lib/"
flatDir dirs: s
mavenCentral()
}

//compileOnly 'javax.jms:jms-api:1.1-rev-1'
compileOnly ':my-jms:1.2'

关于gradle - Gradle自定义字符串表示法在依赖中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62746792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com