Использование артефактов подпроекта в Android Build с Gradle

Я все еще довольно плохо знаком с Gradle. Я решил перенести некоторый код, который я часто использую, в подпроект. Этот подпроект является чисто Java-проектом, поэтому я использую только плагин apply: "java".

Я могу собрать этот проект, и в папке сборки находится jar, в котором содержатся скомпилированные классы после вызова команды сборки gradle.

Что на самом деле меня беспокоит, так это то, как я могу использовать классы в своем проекте Android с помощью Android Studio?

Я попытался использовать команду проекта компиляции:

compile project(':PureJavaSubProject')

И он компилирует проект, как и ожидалось. Но Android Studio не может видеть артефакты, созданные проектом?

Я прочитал немного в Gradle Docs об управлении Артефактами, но Документ мне не понятен.

Кто-нибудь может указать мне, как мне нужно объявить или настроить сборку Gradle, чтобы она работала?

2 ответа

У меня была такая же проблема, и оказалось, что у меня немного неправильная структура каталогов для подпроекта Java (я скопировал ее из другого существующего проекта Eclipse).

Я имел:

java-subproject/src/com/example/MyJavaClass.java

... когда это должно было быть:

java-subproject/src/main/java/com/example/MyJavaClass.java

Когда я изменил его на правильную структуру, основной проект Android поднял классы в подпроекте Java.

Полностью рабочий пример проекта Android Studio с подпроектом на чистом Java можно посмотреть здесь, на Github:

https://github.com/barbeau/JavaSubprojectDemo

Включаете ли вы подпроект из корневого проекта в файл settings.gradle?

include 'PureJavaSubProject'

Я не могу проверить из Android Studio, я боюсь. Здесь также есть больше документации по многопроектным сборкам:

http://www.gradle.org/docs/current/userguide/multi_project_builds.html

Другие вопросы по тегам