- [Android] 로컬 프로젝트를 implementation하기2023년 10월 26일 01시 19분 32초에 업로드 된 글입니다.작성자: 핀수728x90반응형
디바이스 방향값을 보정을 하기 위해 자료를 찾아다니던 중 좋은 소스를 발견해서
클론을 했다. 근데 버전이 너무 오래되어서 실행이 되지 않았고…
아쉬운대로 해당 레포의 리드미에 적힌 것처럼 라이브러리로 불러와 사용해보자 싶었다.
로컬 프로젝트를 불러와 사용하는 것은 처음이라 공식문서를 찾아보니
빌드 종속 항목에는 세가지 유형이 있다고 한다.
종속 항목 유형
plugins { id 'com.android.application' } android { ... } dependencies { // 로컬 라이브러리 모듈 종속 항목 implementation project(':mylibrary') // 로컬 바이너리 모듈 종속 항목 implementation fileTree(dir: 'libs', include: ['*.jar']) // 원격 바이너리 종속 항목 implementation 'com.example.android:app-magic:12.3' }
로컬 모듈을 추가해 사용해보는 방법에 대해 알아보려고 한다.
로컬 라이브러리 모듈 종속 항목
settings.gradle
include ':libs:dsensor'
settings.gradle 에 어떤 프로젝트를 포함할 것인지를 먼저 적어준다.
루트 기준으로 경로를 작성해주면 된다.
나는 경로는 '루트/libs/로컬프로젝트' 와 같았기 때문에 위와 같이 작성해주었다.
build.gradle(:app)
dependencies { implementation project(':libs:dsensor') }
그 다음에는 잘 아는대로 종속 항목을 추가해주면 된다.
project 키워드를 사용한다.
안에 들어갈 경로는 setttings.gradle에 작성한 것과 일치해야 한다.
♨️ Build was configured to prefer settings repositories over project repositories but repository 'BintrayJCenter' was added by build file 'dsensor/build.gradle’
추가 해주고 싱크하는 과정에서 위와 같은 오류가 발생했다.
에러 메세지를 번역해보면
프로젝트 저장소보다 설정 저장소를 선호하도록 빌드가 구성되었지만 'libs/dsensor/build.gradle' 빌드 파일에 의해 저장소 'BintrayJCenter'가 추가되었습니다.
이다.
이를 해결하려면 settings.gradle 의 repositoriesMode의 설정을 변경해주면 된다.
기존에 아래와 같이 설정 되어 있던 것을
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
위와 같이 변경해주었다.
싱크가 문제 없이 완료되었다!
RepositoriesMode
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) repositories { ... } }
settings.gradle을 보면 종속성 문제들을 해결 관리 할 수 있는 영역이 있다.
RepositoriesMode 는 Android 프로젝트 gradle repository 선언과 적용되는 범위를 3가지 모드로 지정할 수 있다고 한다.
PREFER_PROJECT
이 모드가 설정되면 프로젝트에 선언된 저장소로 인해 프로젝트는 설정에서 선언된 저장소를 무시하고 프로젝트에서 선언한 저장소를 사용하게 됩니다. 이것이 기본 동작입니다.
PREFER_SETTINGS
이 모드가 설정되면 프로젝트에서 직접 또는 플러그인을 통해 직접 선언된 모든 저장소가 무시됩니다.
FAIL_ON_PROJECT_REPOS
이 모드가 설정되면 프로젝트에서 직접 또는 플러그인을 통해 직접 선언된 리포지토리에서 빌드 오류가 발생합니다.
그래서 저런 에러 메세지가 떴었군…
알고보면 에러 메세지는 정말 친절하다…그냥 다 알려주는데 그걸 못 알아 듣는 건 나였던거죠…
음?
필요한 클래스가 import가 되지 않았다.
그래서 찾아보니 file > new > import module
로 추가해주면 된다.
그러면 알아서 settings.gradle에 추가된다..
모듈이 추가된 것을 확인할 수 있다.
공부하며 작성된 글이라 잘못된 정보가 있을 수 있습니다.
말씀해주시면 수정하겠습니다. 감사합니다.
References
아래 글을 참고하여 작성 되었습니다.
빌드 종속 항목 추가 | Android 개발자 | Android Developers
Android 스튜디오에서 Gradle 빌드 시스템을 이용하여 빌드 종속성을 추가하는 방법에 관해 알아보세요.
developer.android.com
Build was configured to prefer settings repositories over project repositories but repository 'MavenRepo' was added by plugin 'r
Getting this error any fix for this? Build was configured to prefer settings repositories over project repositories but repository 'MavenRepo' was added by plugin 'realm-android' Thanks
github.com
[Android] RepositoriesMode
HTML 삽입 미리보기할 수 없는 소스 안녕하세요 점냥입니다 :) 새 안드로이드 프로젝트를 만들고 settings.gradle 파일에 열어보면 RepositoriesMode를 설정하는 코드를 확인할 수 있는데요. 이 것이 어떤
jaeryo2357.tistory.com
RepositoriesMode (Gradle API 8.4)
If this mode is set, any repository declared directly in a project, either directly or via a plugin, will trigger a build error.
docs.gradle.org
728x90반응형'pinslog > Log.daily()' 카테고리의 다른 글
[git] 변경사항이 적용되지 않은 상태에서 다른 브랜치로 이동하기 (0) 2023.10.29 [git] 머지 취소하기 (0) 2023.10.28 [Android] EditText 바깥 영역 터치 시 키보드를 숨기기 (0) 2023.10.25 [Kotlin] 함수 탈출하기 (0) 2023.10.21 튼튼한 집 짓기 (0) 2023.10.19 다음글이 없습니다.이전글이 없습니다.댓글