我很难弄清楚如何解决Artifactory中的远程工件从Gradle构建中的依赖关系。Gradle Artifactory依赖关系:SNAPSHOT模式问题
这件神器,请访问:
http://192.168.2.130:8081/artifactory/simple/libs-snapshot-local/com/company/test/1.0-SNAPSHOT/TestArtifact-1.0-20130607.104006-2.apklib
我的build.gradle是:
buildscript {
repositories {
maven {
url "http://192.168.2.130:8081/artifactory/gradle"
credentials {
username = "$artifactory_user"
password = "$artifactory_password"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4.2'
classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '2.0.12', changing: true)
}
}
}
allprojects {
apply plugin: 'idea'
apply plugin: 'android'
apply plugin: 'artifactory'
}
repositories {
maven {
url "http://192.168.2.130:8081/artifactory"
credentials {
username = "$artifactory_user"
password = "$artifactory_password"
}
}
}
artifactory {
contextUrl = 'http://192.168.2.130:8081/artifactory/simple'
resolve {
repository {
repoKey = 'libs-snapshot'
maven = true
}
}
}
在Artifactory的,仓库libs-snapshot
使用maven独特的快照行为,并结合maven-2-default
布局,具有以下配置:
工件路径模式:[orgPath]/[module]/[baseRev](-[folderItegRev])/[module]-[baseRev](-[fileItegRev])(-[classifier]).[ext]
文件夹整合修订的RegExp:SNAPSHOT
文件集成修订的RegExp:SNAPSHOT|(?:(?:[0-9]{8}.[0-9]{6})-(?:[0-9]+))
所以从我的理解摇篮应通过查看解决的依赖:
http://192.168.2.130:8081/artifactory/simple/libs-snapshot/com/company/test/TestArtifact/1.0-SNAPSHOT/TestArtifact-1.0-xxxxxxxx.xxxxxx-x.apklib
,但它实际上是在看:
http://192.168.2.130:8081/artifactory/com/company/test/TestArtifact/1.0/TestArtifact-1.0.apklib
所以显然它不能解决依赖。我还试图用通过Artifactory的产生gradle这个编译行,但它没有这样做的伎俩之一:
compile(group: 'com.company.test', name: 'TestArtifact', version: '1.0-20130607.104006-2', ext: 'apklib')
虽然我花了一些时间阅读文章和摇篮/ Artifactory的文档,我更糊涂了,现在我刚刚开始...所以,我有几个问题:
1)Gradle似乎没有使用artifactory {}部分。实际上,它只使用我在存储库{}部分中声明的url。但是,当我删除存储库部分时,它只会在本地查找依赖关系。这是为什么?声明Artifactory存储库的正确方法是什么?
2)请问Gradle是否知道底层的libs-snapshot
布局?如果没有,Artifactory插件是否提供了一种自定义工件搜索模式的方法(直接Maven,而不是常春藤)?因为我只使用Artifactory的免费版本,因此我将无法编辑存储库布局。
3)为什么Artifactory会生成一个Gradle编译行,它似乎不匹配工件容器存储库使用的布局?
在此先感谢!
我遇到同样的问题。你能弄清楚这一点吗? – amadib