我正在尝试使用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,结果相同。
答案 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(包含所有版本的插件)一致。