我正在尝试获取Gradle Artifactory插件来解决 Artifact 。
我的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()
}
但是,当运行此命令时,它无法解析 Artifact 。依赖线是从Artifactory生成的。
我打算使用“旧的”发布机制。我的Gradle版本是2.0。
我尝试了带有maven2-default和gradle布局的人工仓库。
堆栈跟踪可以在http://textuploader.com/oljd中找到
调试跟踪可以在http://filebin.ca/1ecmeQ7zYEIU/debug.txt中找到
如果我改为使用Maven存储库,即
repositories {
maven {
url 'http://<URL>:8081/artifactory/repo'
}
}
然后 Artifact 将解决我因此对 Artifact DSL代码做错了或插件中存在错误的问题
我现在也已经在Gradle 1.12和Gradle 2.1上尝试过,但结果相同。
最佳答案
我想我找到了您要描述的问题的原因。
Gradle Artifactory插件似乎可以正常运行。
执行“artifactoryPublish”任务时,将按预期从Artifactory进行解析。
我还尝试将build.gradle任务(下载文件),依赖项配置(部署)和依赖项(如您的脚本中)添加到我的build.gradle中:
configurations {
deploy
}
dependencies {
deploy group: 'test', name: 'PolicyAdmin', version: '1.0', ext: 'ear'
}
task downloadFile {
def fileExec = configurations.deploy.getSingleFile()
}
当直接调用如上定义的downloadFile任务时,确实不会从Artifactory解析 Artifact (除非您当然将Artifactory添加为存储库)。
但是,如果您将<<添加到任务声明中:
task downloadFile << {
def fileExec = configurations.deploy.getSingleFile()
}
Gradle将尝试从Artifactory解决 Artifactory 。
如Gradle文档中所述,在任务中添加“<<”等效于Task.doLast():
http://www.gradle.org/docs/current/dsl/org.gradle.api.Task.html
以上所有内容似乎与Gradle 2.x(带有插件的3.0.1版本)以及Gradle 1.x(带有插件的所有版本)一致。
关于gradle - Gradle Artifactory插件 Artifactory 解析不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26512005/