2016-07-29 3 views
0

내 라이브러리를 사용하는 Android 앱이 있습니다. 나는 동시에 그들을 개발하고 있으므로 내 라이브러리에서 변경 사항이있을 때도 내 응용 프로그램에서도 테스트하고 싶습니다.로컬 Maven 저장소와 함께 작동하는 Android 라이브러리

내 라이브러리는 다른 개발자가 사용하기 때문에 다른 프로젝트로 설정됩니다. 우리가 작업하는 방식은 인공 지능 플랫폼을 사용하여 라이브러리를 구축하는 것입니다. 인공 지능 서버에 인공 지능 플랫폼을 배포하십시오.

다음 응용 프로그램에서이 라이브러리를 직접 artifactory를 통해 참조합니다. 이렇게하면 CI 플랫폼이 앱을 빌드 할 때 빌드 프로세스가 artifactory에서 lib를 가져오고 CI가 원활하게 작동합니다.

이것은 좋은 방법입니다. 변경 사항을 커밋하고 끌어 오기 요청을 만들고 개발 분기와 병합하고 CI 작성을 기다려야하기 때문에 병렬로 개발할 때 엉망입니다. artifactory 서버에 배포하면 응용 프로그램에서 테스트 할 수 있습니다.

java EE 개발에서 나온 maven install을 사용하여 로컬 메이븐 레포에 이슈를 배포 한 다음 이미 내 웹 응용 프로그램에서 사용할 수 있습니다.

비슷합니다. 즉 내 로컬 저장소에 내 아티팩트를 배포해야합니다. 따라서 로컬 저장소의 아티팩트가 업데이트되지만 리모컨의 아티팩트는 업데이트되지 않습니다. 이 방법을 사용하면 CI 설치를 계속 유지하면서 더 쉽게 디버깅 할 수 있습니다.

그러나 나는 gradle에서이 작업을 수행하는 방법을 모릅니다. artifactory 플러그인은 artifactory 서버에서만 배포 할 수있는 것처럼 보입니다.

어떤 아이디어가 있습니까?

답변

1

maven 플러그인을 사용하는 경우 설치 작업을 실행하여 이슈를 로컬 Maven repo [1]에 배포 할 수 있습니다. 아티팩트를 로컬 Maven 저장소에 배포 한 후에는 종속성을 해결할 수있는 저장소 중 하나로 mavenLocal() [2]을 추가해야합니다. 내가 사용하는 하나의 전략은 로컬 버전이 항상 선택 될 수 있도록 내 로컬 복사본에 대한 사용자 지정 버전을 항상 설정하는 것입니다. 그러나 그렇게하지 않으려는 경우 리포지토리가 나열된 순서로 종속성이 해결됩니다 (mavenLocal이 Artifactory 서버보다 먼저 있어야합니다.)

[1] https://docs.gradle.org/current/userguide/maven_plugin.html, https://github.com/dcendents/android-maven-gradle-plugin

[2] https://discuss.gradle.org/t/how-to-use-maven-local-repository-for-gradle-build/2244

관련 문제