gpt4 book ai didi

java - gradle:从ivy存储库下载特定文件

转载 作者:行者123 更新时间:2023-11-30 06:20:13 24 4
gpt4 key购买 nike

我们使用内部 ivy 存储库,并且正在摆脱 ant/ivy 并在 gradle 中分配所有任务。我在 gradle 中设置了 ivy 存储库,如下所示:

repositories {
ivy {
url "${ivy_repository_url}"
layout "pattern", {
ivy "repository/[organisation]/[module]/[revision]/[artifact].[ext]"
artifact "repository/[organisation]/[module]/[revision]/[artifact].[ext]"
m2compatible = true
}
credentials {
username "${ivy_repository_username}"
password "${ivy_repository_password}"
}
}
}

在执行任务时,它会按预期解析,但是,在某些情况下,如果命名约定不匹配,它会拉下存储库中的所有内容,因此我最终会得到很多额外的东西,javadocs.zip,源。 zip 和其他一切。

为了解决这个问题,我想先将特定的 jar 文件下载到临时文件夹,然后从本地编译它们,但我不知道如何告诉 gradle 下载一个与模块名称不同的文件。

示例:

ivyFiles 'net.sourceforge.jtidy:jtidy:r938@jar'

仅从net.sourceforge.jtidy存储库下载jtidy-r938.jar,但类似

ivyFiles 'com.gargoylesoftware:htmlunit:2.7@jar'

会拉取htmlunit-2.7.jar,但不会拉取文件htmlunit-core-js-2.7.jar

如果我省略@jar,它会恢复调用ivy.xml 文件,并且留下我试图避免的所有垃圾+依赖项。我尝试了以下方法但没有成功

    ivyFiles ('com.gargoylesoftware:htmlunit:2.7'){
artifact{
name = 'htmlunit-core-js'
type = 'jar'
}
}

一定有办法做到这一点。

谢谢

最佳答案

我明白了。这就是我最终所做的

ivyFiles ('com.gargoylesoftware:htmlunit:2.7'){
transitive = false
artifact {
name = 'htmlunit-core-js'
extension = 'jar'
type = 'jar'
}
}

现在只下载了htmlunit-core-js-2.7.jar文件

关于java - gradle:从ivy存储库下载特定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48309684/

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