build - 使用Gradle访问存储库中的最新文件

标签 build gradle artifactory

我创建了一个任务,该任务可以提取本地.tar文件(我以前是从Artifactory手动下载的)作为测试。我的gradle脚本中的文件在Artifactory上时如何引用?我应该只使用服务器路径吗?我使用gradle所做的只是基本的东西,还没有使用存储库。

我还想根据自上次运行脚本以来文件是否已更改执行某种操作,这可能吗?

最佳答案

一种方法是为您的TAR文件创建一个新的configuration。在我的示例中,我给它起了名字myTar。在存储库闭包中,您定义Artifactory存储库的URL,并在dependencies闭包中引用TAR文件作为依赖项。运行Gradle时,它将为您下载文件并将其放入本地存储库中。在我阅读时,您已经创建了一个提取TAR文件的任务。我创建了一个名为extractMyTar的任务,该任务通过其配置名称引用您下载的TAR文件,并将其解压缩到本地目录中。

configurations {
    myTar
}

repositories {
    mavenRepo urls: 'http://my.artifactory/repo'
}

dependencies {
    myTar 'your.org:artifact-name:1.0@tar'
}

task extractMyTar << {
    File myTarFile = configurations.getByName('myTar').singleFile

    if(myTarFile.exists()) {
        ant.untar(src: myTarFile, dest: file('myDestDir'))
    }
}

关于build - 使用Gradle访问存储库中的最新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11066333/

相关文章:

linux - 什么内置变量告诉你 cmake ExternalProject url tar.gz 文件被提取到哪里?

android - 通过 Hudson 从 Ant 构建 Android 应用程序——先有鸡还是先有蛋的问题

artifactory - JFrog Artifactory AQL

c# - 构建前和构建后事件参数

build - 了解 MSBuild : Printing a variable value

java - 如何使用 maven-publish gradle 插件附加 AAR 文件的源代码?

gradle - 如何在 Windows 10 上安装 gradle?

gradle - 当我仅调用SonarQube分析时,为什么Gradle构建我的Java项目?

ios - 将胖二进制框架添加到 Artifactory Cocoapods 存储库

java - JFrog Artifactory Docker 镜像启动失败