首页 文章

gradle:从常 Spring 藤存储库下载特定文件

提问于
浏览
1

我们使用内部常 Spring 藤存储库,正在逐步远离 Ant /常 Spring 藤,并在gradle中执行任务 . 我将我的常 Spring 藤存储库设置为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'
        }
    }

必须有办法做到这一点 .

谢谢

1 回答

  • 1

    我想到了 . 这就是我最终做的事情

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

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

相关问题