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

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

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

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

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

compile project(':PureJavaSubProject')

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

Я немного читал в документах Gradle об управлении артефактами, но этот документ не ясно для меня.

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


person Kitesurfer    schedule 11.02.2014    source источник
comment
Пожалуйста, уточните, что вы имеете в виду, что Android Studio не может видеть артефакты; пожалуйста, добавьте файлы settings.gradle и build.gradle к вашему вопросу. Кроме того, имейте в виду, что Android Studio в настоящее время имеет ограничение, согласно которому все модули должны находиться в корневой папке проекта; если ваш PureJavaSubProject находится во внешнем каталоге, у вас возникнут проблемы.   -  person Scott Barta    schedule 11.02.2014
comment
@Kitesurfer Вы когда-нибудь понимали это? У меня такая же проблема.   -  person Sean Barbeau    schedule 25.07.2014


Ответы (2)


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

include 'PureJavaSubProject'

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

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

person Mark Pope    schedule 11.02.2014
comment
Да, в моем settings.gradle это заявлено. - person Kitesurfer; 11.02.2014

У меня была такая же проблема, и оказалось, что у меня немного неправильная структура каталогов для подпроекта 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

person Sean Barbeau    schedule 27.07.2014