我们使用内部常春藤存储库,正在逐步远离蚂蚁/常春藤,并在gradle中执行任务。我将我的常春藤存储库设置为gradle,如下所示:
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, sources.zip和其他一切。
为了解决这个问题,我想首先将特定的jar文件下载到temp文件夹,然后从本地编译它们,但我不知道如何告诉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'
}
}
必须有办法做到这一点。
谢谢
答案 0 :(得分:1)
我明白了。这就是我最终做的事情
ivyFiles ('com.gargoylesoftware:htmlunit:2.7'){
transitive = false
artifact {
name = 'htmlunit-core-js'
extension = 'jar'
type = 'jar'
}
}
现在只下载了 htmlunit-core-js-2.7.jar 文件