이제 Android 프로젝트 용 개미/게시 스크립트를 새로운 Android Gradle 빌드 시스템으로 마이그레이션하는 중입니다.Android : Gradle의 Artifactory를 통한 외부 의존성 해결
우리의 프로젝트는 일반적으로 내부 및 제 3 자 라이브러리에 의존합니다. 내부 라이브러리는 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 {} 섹션과 두 개의 compile() 라인을 생성하기 위해 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을에 신인으로, 메이븐 & 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
'gradle refresh-dependencies --info'명령은 더 유용한 정보를 제공하지 않습니다. 디버깅 흔적이 내가 제공 한 contextUrl을 결코 언급하지 않는다는 것이 무엇인지 매우 골치 아픈 일입니다. 대신 내가 가진 (내가해야 바가 아니다, 나는 가정) 다음을 수행하십시오 artifactory 저장소에
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
종속성을 해결할 리포지토리가 없습니다. 'buildscript'섹션에서 선언 된 저장소는 프로젝트 평가 단계에만 적용됩니다 (플러그인 가져 오기, 스크립트 적용 등). 그것들은 빌드 단계 자체에 적용되지 않습니다. – noamt
글쎄, 실제로 사용하는 저장소를 선언하는 artifactory {} 섹션이 아닙니까? 아마도 나는 혼란 스럽습니다 ... – user1860579
예, 찾고있는 이슈는 아마도 libs-snapshots 저장소를 통해 접근 할 수 없을 것입니다. – noamt