我很難弄清楚如何解決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