2013-06-07 1 views
1

Итак, в настоящее время мы работаем над переносом сценариев создания муравьев/публикации для Android-проектов на новую систему сборки Android Gradle.Android: разрешить внешние зависимости по сравнению с Artifactory с Gradle

Наши проекты обычно основаны как на внутренних, так и на сторонних библиотеках. Внутренние библиотеки были опубликованы в репозиториях Artifactory, и теперь я изо всех сил пытаюсь разрешить зависимости над ними.

buildscript { 
    repositories { 
     maven { url 'http://repo1.maven.org/maven2' } 

     maven{ 
      url 'http://dl.bintray.com/jfrog/jfrog-jars' 
     } 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.4' 
     classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '2.1.0') 
    } 
} 
apply plugin: 'android' 
apply plugin: 'artifactory' 

artifactory { 
    contextUrl = 'my_artifactory_url' 

    resolve { 
     repository { 
      repoKey = 'libs-snapshot' 
      maven = true 
     } 
    } 
} 

dependencies { 
    compile files('libs/android-support-v4.jar') 
    compile(group: 'groupId', name: 'artifact1Id', version: 'artifact1Version') 
    compile(group: 'groupId', name: 'artifact2Id', version: 'artifact2Version') 
} 

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     minSdkVersion 7 
     targetSdkVersion 16 
    } 
} 

я в основном использовал встроенные опции в Artifactory для создания секции Artifactory {} и две компиляции() линии. Но у меня эта ошибка возникает при попытке построить (и я продолжаю иметь его все, что незначительные изменения, которые я пробовал):

15:34:23.208 [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception. 
15:34:23.209 [ERROR] [org.gradle.BuildExceptionReporter] 
15:34:23.210 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong: 
15:34:23.210 [ERROR] [org.gradle.BuildExceptionReporter] A problem occurred configuring project ':GradleArtifactoryTest'. 
15:34:23.210 [ERROR] [org.gradle.BuildExceptionReporter] > Failed to notify project evaluation listener. 
15:34:23.211 [ERROR] [org.gradle.BuildExceptionReporter] > Could not resolve all dependencies for configuration ':GradleArtifactoryTest:compile'. 
15:34:23.211 [ERROR] [org.gradle.BuildExceptionReporter]  > Could not find groupId:artifact1Id:artifact1Version. 
15:34:23.212 [ERROR] [org.gradle.BuildExceptionReporter]   Required by: 
15:34:23.212 [ERROR] [org.gradle.BuildExceptionReporter]    workspace_gradle-artifactory-test:GradleArtifactoryTest:unspecified 
15:34:23.213 [ERROR] [org.gradle.BuildExceptionReporter]  > Could not find groupId:artifact2Id:artifact2Version. 
15:34:23.213 [ERROR] [org.gradle.BuildExceptionReporter]   Required by: 
15:34:23.214 [ERROR] [org.gradle.BuildExceptionReporter]    workspace_gradle-artifactory-test:GradleArtifactoryTest:unspecified 

Я, вероятно, отсутствует что-то большое, но, как новичок в Gradle, Maven & Artifactory, На данный момент я чувствую себя немного потерянным. Может кто-нибудь просветить меня или, возможно, рассказать мне, как я могу получить более точную информацию о проблеме (я попробовал опции --debug и --info, --s и --S, и это было не очень полезно). Исходное исключение всегда:

Caused by: org.gradle.api.internal.artifacts.ivyservice.ModuleVersionNotFoundException: Could not find groupId:artifact1Id:artifact1Version. 
Required by: 
14:20:51.833 [ERROR] [org.gradle.BuildExceptionReporter]  workspace_gradle-artifactory-test:GradleArtifactoryTest:unspecified 
14:20:51.833 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.LazyDependencyToModuleResolver$StaticVersionResolveResult.notFound(LazyDependencyToModuleResolver.java:148) 
14:20:51.834 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.LazyDependencyToModuleResolver$AbstractVersionResolveResult.resolve(LazyDependencyToModuleResolver.java:89) 
14:20:51.834 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DependencyGraphBuilder$ModuleVersionSelectorResolveState.resolve(DependencyGraphBuilder.java:943) 
14:20:51.835 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DependencyGraphBuilder$DefaultModuleRevisionResolveState.getMetaData(DependencyGraphBuilder.java:648) 
14:20:51.835 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DependencyGraphBuilder$DependencyEdge.calculateTargetConfigurations(DependencyGraphBuilder.java:333) 
14:20:51.836 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DependencyGraphBuilder$DependencyEdge.attachToTargetConfigurations(DependencyGraphBuilder.java:309) 
14:20:51.836 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DependencyGraphBuilder.traverseGraph(DependencyGraphBuilder.java:130) 
14:20:51.836 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DependencyGraphBuilder.resolve(DependencyGraphBuilder.java:66) 
14:20:51.837 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultDependencyResolver.resolve(DefaultDependencyResolver.java:7 

Команда 'refresh-dependencies -info' не указала более полезную информацию. Что очень тревожно, так это то, что трассировки отладки никогда не упоминаются в контексте, предоставленном мной. Вместо этого я получил следующее (что, я полагаю, это не то, что я должен быть):

selecting new module version groupId#artifact1Id;artifact1Version 
16:58:08.827 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.UserResolverChain] Attempting to resolve module 'groupId:artifact1Id:artifact1Version' using repositories [maven, maven2] 
16:58:08.829 [DEBUG] [org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver] Loading /Applications/Android Studio.app/sdk/extras/android/m2repository/groupId/artifact1Id/artifact1version/artifact1Id-artifact1Version.pom 
16:58:08.832 [DEBUG] [org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver] Resource not reachable for groupId#artifact1Id;artifact1Version: res=MissingResource: /Applications/Android Studio.app/sdk/extras/android/m2repository/groupId/artifact1Id/artifact1version/artifact1Id-artifact1Version.pom 
16:58:08.833 [DEBUG] [org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver] Loading /Applications/Android Studio.app/sdk/extras/android/m2repository/groupId/artifact1Id/artifact1version/artifact1Id-artifact1Version.apklib 
16:58:08.840 [DEBUG] [org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver] Resource not reachable for groupId#artifact1Id;artifact1Version: res=MissingResource: /Applications/Android Studio.app/sdk/extras/android/m2repository/groupId/artifact1Id/artifact1version/artifact1Id-artifact1Version.apklib 
+1

Обратите внимание, что вы не указали репозитории для разрешения зависимостей. Репозитории, объявленные в разделе «buildscript», применяются только к фазе оценки проекта (для вытягивания плагинов, применения сценариев и т. Д.); они не относятся к самой фазе сборки – noamt

+0

Ну, а не артефакт {}, который фактически объявляет репозиторий? Возможно, я смущен ... – user1860579

+0

Да, но артефакт, который вы ищете, вероятно, недоступен через репозиторий libs-snapshots – noamt

ответ

0

Как @noamt сказал, что единственное, что неправильно было то, что я не объявлял} раздел {а хранилища, на самом деле позволяет соединение с Artifactory. Я все еще немного смущен, почему это прямо не обрабатывается секцией artifactory {}, но по крайней мере она работает сейчас.

+0

Не могли бы вы более подробно объяснить, как вы решили свою проблему. Я действительно не понял:/ –

+0

Ну, это на самом деле не полностью разрешено. Поскольку мне не удалось получить секцию artifactory {}, я просто заменил весь материал простым объявлением репозиториев maven 'repositories { maven { URL-адрес" http://192.168.2.130:8081/artifactory/simple/libs-release "}} '. – user1860579

0

вы дважды проверили, что «идентификатор_группа: artifact2Id: artifact2Version» находится в вашем хранилище Artifactory? или вы случайно полагаетесь на переменную здесь вместо строки?

веселит, Рене

+0

Да, я определенно проверил это (много раз на самом деле). Я уверен, что проблема в другом месте. Обратите внимание, что я получил то же самое сообщение об ошибке, когда я изменяю artifactory contextUrl для неправильного URL-адреса, поэтому в этот момент я даже не уверен, что artifactory достигнута. – user1860579

0

Я обнаружил, что Gradle по умолчанию подхватывает андроид sdk хранилищу:

C:\Users\YOUR_USER\android-sdks\extras\android\m2repository 

Вместо:

C:\Users\YOUR_USER\.m2\repository 

При поиске артефактов, но позже, когда их загрузки. Проведите сравнение и проверьте, загружены ли они во втором.

+0

Я не уверен, что следую за вами, но на самом деле нет загрузки (в любом каталоге). Он явно ищет артефакты локально (в Android Studio SDK, если быть точным), но они не были загружены. Это то, что меня озадачило. – user1860579

 Смежные вопросы

  • Нет связанных вопросов^_^