Использование артефактов подпроекта в 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:
Включаете ли вы подпроект из корневого проекта в файл settings.gradle?
include 'PureJavaSubProject'
Я не могу проверить из Android Studio, я боюсь. Здесь также есть больше документации по многопроектным сборкам:
http://www.gradle.org/docs/current/userguide/multi_project_builds.html