Как создать свое многопроектное программное обеспечение Java с помощью Gradle - PullRequest
0 голосов
/ 27 января 2019

У меня есть проект Java, который я разрабатываю для Linux, и я использую gradle для его сборки.Я масштабирую его на несколько компонентов, и я довольно заблудился.

До этого момента проект представлял собой одно приложение командной строки, созданное с помощью gradle, с одним каталогом src и всеми java-файлами.Теперь это нужно изменить.

Он будет состоять из трех компонентов.

A.Ядро Java.B. Приложение командной строки, которое использует приложение AC Android, которое использует A.

. В настоящий момент A и B - это всего лишь одна гигантская папка src.

API Java в конечном итоге будет зарегистрирован какавтономная библиотека с открытым исходным кодом на Github.

Как правильно построить это?Я действительно понятия не имею, с чего начать.

Должно ли ядро ​​Java API собираться в виде библиотеки gradle, а затем выводиться в проекты Android и Cli?

Или другие приложения должны просто добавить базовый API в качестве включаемого каталога?

Или мне просто использовать символические ссылки для добавления базового API-кода в другие сборки?

Чтобы сделать этот вопрос менее субъективным, меня больше всего интересует одно решение, которое будет соответствовать стандартным соглашениям, и самый идиоматический подход к этой проблеме.

1 Ответ

0 голосов
/ 27 января 2019

Если вы планируете выпустить «A» в качестве библиотеки с открытым исходным кодом, то вы можете попытаться пройти процесс добавления его к центральному репо Maven , откуда вы можете добавить его как любую другуюзависимость.Я сам не пробовал, но читал, что это может быть утомительно.

К счастью, в Gradle также можно добавить репозиторий git в качестве зависимости к проекту. Подробности вы можете найти в этом сообщении в блоге .Поэтому, когда вы поместили «A» в репозиторий git, вы можете добавить его в качестве зависимости как для «B», так и для «C».

Или вы можете построить банку из «A» в любую точкупожалуйста, включая исходный целевой каталог и включите его в качестве локального jar в 'B' и сценарий сборки C

dependencies {
    implementation files("A_source_path/A_local.jar")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...