안드로이드 스튜디오에서 작성한 Android Library 모듈을 jar 플러그인으로 export 하려고 합니다.
찾아보니 두가지 방법이 있더군요.
build 태스크를 직/간접적으로 실행하거나,
Build 메뉴의 Make Module 기능을 실행하거나.
그 다음에 '모듈/build/intermediates/bundles/*' 하위에 생성된 classes.jar 파일을 취하면 되는건데,
의존하는 라이브러리 없이 아주 심플한 기능만 구현했을 때에는 괜찮습니다.
문제는 의존 라이브러리가 있는 경우,
즉 build.gradle 파일의 dependencies 항목에 정의한 내용이 있는 경우에는 해당 내용이 최종 jar 파일에
포함되지 않습니다.
혹시나 해서 dependencies 에 해당되는 jar 파일을 직접 사용처에 복사해놓고 실행해보았습니다만,
인식을 하지 못하더라고요.
아마도 제 JAR 플러그인 파일의 매니페스트에 제대로 등록이 안되어서 그런게 아닌가 짐작중입니다.
제가 예전에 IntelliJ 에서 Gradle 을 사용하여 자바 플러그인을 빌드 했을 때에는
build.gradle 의 dependencies 에 compile 키워드로 지정된 라이브러리들은 단순 참조가 아니라
최종 jar 파일 내에 포함되어 빌드 되었던 것으로 기억되는데 안드로이드 스튜디오에서는 아닌가 보네요..
그러고보니 빌드 파일이 저장되는 위치도 다르네요. IntelliJ + Gradle 의 자바 빌드에서는 output/libs 에 저장되었던 것 같은데.
아무튼 제가 원하는 결과물은 외부에서 dependencies 의 문제가 없는 jar 라이브러리 파일을 구하는 것입니다.
따라서 모든 의존 라이브러리들이 하나로 패키징된 jar 파일도 좋고요,
제가 의존 jar 파일들을 따로 복사해야하는 수고는 필요할지언정, 최소한 그들을 인식할 수 있는 jar 파일로 빌드 할 수 있더라도 좋겠네요.
제 개인적으로는 후자가 더 좋습니다.
그래야 외부에서 제 라이브러리를 사용할 때에 dependency 라이브러리들에 의한 충돌을 피하기 쉬우니까요.
google 라이브러리 같은, 타 라이브러리에서도 흔히 사용되는 것들을 사용중이거든요.
아무래도 이런 라이브러리는 외부 참조 형식으로 배포를 해야만 사용자가 중복 라이브러리를 쉽게 삭제할 수 있을테니 말이죠.
Android Gradle 시스템에 대해서는 잘 모르지만, 그래도 힌트를 주시면 스스로 노력은 해볼 수 있을만큼의
최소한의 Gradle, Groovy, IntelliJ 에 대한 상식 정도는 있습니다.
이 것 때문에 꼬박 이틀동안 고생중입니다.
저좀 도와주세요 ㅠㅠ
PS. 구글링도 해보고 stackoverflow 에서도 검색해 보았는데,
답변으로 올라온 task 스크립트들은 해결책이 아니더라고요.
몇가지는 아예 실행도 안되고, 나머지는 결과가 그대로거나 엉뚱한 내용이 빌드되었습니다.