Gradle Artifactory插件工件分辨率不起作用

时间:2014-10-22 16:07:18

标签: gradle artifactory

我正在尝试使用Gradle Artifactory插件来解决工件。

我的build.gradle文件位于下方,正在替换为正确的主机名

buildscript {
    repositories {
        maven { url 'http://jcenter.bintray.com' }
    }
    dependencies {
        classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '3.0.1')
    }
}

apply plugin: 'com.jfrog.artifactory'

artifactory {
   contextUrl = 'http://<URL>:8081/artifactory'   //The base Artifactory URL if not overridden by the publisher/resolver

   resolve {
      repository {
         repoKey = 'training'
         maven = true
      }
   }
}

configurations {
   deploy 
}

dependencies {
   deploy group: 'test', name: 'PolicyAdmin', version: '1.0', ext: 'ear'
}

task downloadFile {
    def fileExec = configurations.deploy.getSingleFile()
}

然而,当它运行时,它无法解决工件。依赖项行是从Artifactory生成的。

我打算使用“旧”发布机制。我的Gradle版本是2.0。

我尝试过一个带有maven2-default和gradle布局的artifactory资源库。

可以在http://textuploader.com/oljd

找到堆栈跟踪

可以在http://filebin.ca/1ecmeQ7zYEIU/debug.txt

找到调试跟踪

如果我改为使用maven存储库,即

repositories {
   maven {
      url 'http://<URL>:8081/artifactory/repo'
   } 
}

然后工件将解决我因此对神器DSL代码做错了或者插件中有错误

我现在也尝试使用Gradle 1.12和Gradle 2.1,结果相同。

1 个答案:

答案 0 :(得分:1)

我想我找到了你所描述问题的原因。 Gradle Artifactory插件似乎按预期运行。 执行“artifactoryPublish”任务时,解决方案是按照预期从Artifactory完成的。 我还尝试向build.gradle添加任务(downloadFile),依赖配置(部署)和依赖(如脚本中):

configurations {
   deploy 
}

dependencies {
   deploy group: 'test', name: 'PolicyAdmin', version: '1.0', ext: 'ear'
}

task downloadFile {
   def fileExec = configurations.deploy.getSingleFile()
}

当按照上面的定义直接调用downloadFile任务时,工件确实无法从Artifactory中解析(除非您将Artifactory添加为存储库)。 但是,如果添加&lt;&lt;到任务声明:

task downloadFile << {
   def fileExec = configurations.deploy.getSingleFile()
}

Gradle将尝试从Artifactory中解析神器。 添加“&lt;&lt;”该任务等同于Gradle文档中描述的Task.doLast(): http://www.gradle.org/docs/current/dsl/org.gradle.api.Task.html

以上所有内容似乎与Gradle 2.x(插件版本3.0.1)以及Gradle 1.x(包含所有版本的插件)一致。