2014-12-08 1 views
1

MyLib라는 Android 라이브러리를 만들려고합니다. 내 MyLib.aar 만들 때 A, B 및 C가 포함되지 않은 것으로 보인다 A, B와 C의존성이있는 .aar를 제공 할 수 없습니까?

:

도서관

는 여러 가지 다른 라이브러리와 모듈에 따라 달라집니다.

MyLib.aar을 응용 프로그램에 통합 할 때 A, B 및 C를 응용 프로그램의 build.gradle에 종속성으로 설정해야합니다. 하지만 이미 MyLib 라이브러리 프로젝트에서 이들을 종속물로 설정했습니다.

올바른 동작입니까?

MyLib에 의존하는 앱이 A, B 및 C를 명시 적으로 의존성으로 선언 할 필요가 없도록 MyLib과 함께 A, B 및 C를 패키지화 할 수있는 방법이 있습니까?

+0

"내 MyLib.aar을 응용 프로그램에 통합 할 때"- 어떻게하고 있습니까? AAR을 아티팩트로 참조하는 경우 POM은 AAR 사용자가 라이브러리에 필요한 종속성 (및 버전)을 알 수 있도록 종속성 정보를 포함해야합니다. – CommonsWare

+0

@CommonsWare '어셈블'gradle 명령을 실행 중입니다. 이렇게하면 내 라이브러리의 app/build/outputs/aar 디렉토리에 .aar 파일이 생성됩니다. .aar 파일을 복사하여 내 앱 프로젝트의 app/libs 디렉토리에 붙여넣고 app/build.gradle 파일의 종속성으로 .aar를 참조합니다. – neonDion

+3

Maven 스타일 저장소 (단지'mavenLocal()'일지라도)를 사용하여 POM 파일을 사용하여 의존성을 표현할 수 있도록 전환하는 것이 좋습니다. 툴체인에는 AAR 파일을 병합 할 수있는 기능이 없습니다. – CommonsWare

답변

1

다른 개발자에게 MyLib을 배포하고 해당 빌드 환경에서 종속성을 해결할 수있게하려면 MyLib의 종속성을 유지하는 공용 Maven 저장소를 만드는 것이 해결책 인 것 같습니다. 라이브러리를 사용하는 개발자는 모든 종속성을 해결할 수 있습니다. 나는 그것을 정확하게 이해하고 있는가?

일반적으로 말해서, 그렇습니다.

AAR 자체 및 해당 POM 파일은 개발자가 AAR을 필요로하는 모든 사람이 볼 수있는 저장소에 의해 호스팅됩니다. 이것은 Maven Central과 같은 방식으로 팀의 사내 저장소 일 수 있습니다.

AAR의 종속

는 두 개의 진영으로 (희망) 떨어질 것 :

  1. 이미 공개적으로 볼 수 종속 된 것 (예를 들면, 밖으로 메이븐 중앙에), 당신의 AAR/POM의 소비자 아래로 당길 수 있습니다

  2. 당신이 AAR 자체처럼 취급하고, 의존성과 그 POM을 repo에 넣어 다른 사람들이 1 차 AAR을 소비 할 때 얻을 수있는 코드들 리포에서

관련 문제