Как создать библиотеку, зависящую от других библиотек (Java, libgdx)

#java #intellij-idea #libgdx

#java #intellij-idea #libgdx

Вопрос:

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

«модуль» в буквальном смысле.

Сначала я хотел создать именно такие модули (используя java module в качестве литерального модуля). Но потом я подумал, почему бы просто не создавать библиотеки вместо этого.

Важной частью для меня является повторное использование, поэтому, во-первых:

1. В чем разница между модулем и библиотекой? Вы бы просто создали модуль и копировали его между проектами или создали библиотеку?

Вероятно, не так, как вы должны использовать Java-модуль. В настоящее время я читаю больше о модулях Java.

дополнительный контекст: Набор классов содержит классы, которые используются только внутри, и некоторые для внешнего использования в качестве общедоступных классов, которые могут быть библиотечными. «Модуль» чем-то похож на программу сам по себе, с классами ввода / вывода. И идея состоит в том, чтобы построить мой проект на кирпичиках, подобных этому. Итак, я запутался в том, как сделать это модульным. Я подумал, что создание этих библиотек и импорт их в будущие проекты libgdx может быть правильным решением.

В любом случае, вопрос о названии все равно будет поднят позже в какой-то момент.


Некоторая общая практическая информация: (Я включаю, как я буду создавать библиотеку, которая может иметь отношение к делу, а может и не иметь. Пропустите этот раздел, чтобы перейти к вопросу)

В целях тестирования я создал новый проект и включил некоторые библиотеки libgdx.

(они у меня есть в папке «lib» внутри моего проекта или обычно во внешней папке, которую использует каждый новый проект. в IntelliJ я захожу в файл — структура проекта — библиотеки. И найдите файлы gdx .jar для включения.)

Я создаю arbritrary-класс, расширяющий класс gdx.

Отсюда я хочу создать библиотеку. (Или файл .jar проекта)

Насколько я понимаю, вот как нужно создавать библиотеку.

Я пытался сделать это в IntelliJ:

(В Eclipse это выглядело проще в руководстве YouTube. Просто щелкните правой кнопкой мыши пакет и экспортируйте как .jar)

IntelliJ: Файл — Структура проекта — Артефакты — ( ) Добавить Jar -> из модулей с зависимостями.

Я выбираю модуль с именем проекта. (Я думаю, если бы у вас было больше модулей в проекте, вы могли бы также выбрать их)

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

У меня выбрано «извлечь в целевой JAR». и нажмите ok.

Это всплывает:

введите описание изображения здесь

На данный момент я не знаю, на что я смотрю.

Я нажимаю применить / ok.

Отсюда я перехожу к сборке — Build artifact. Выберите файл .jar и создайте.

Итак, теперь у меня есть файл .jar, который я могу импортировать в новый проект.

Но это.файл jar также включает библиотеки libgdx, от которых он зависит.

Итак, я думаю, вы могли бы просто объединить библиотеки gdx со своей библиотекой / libraries и просто включить одну.Файл Jar для всех из них?


Итак:

2. Каков правильный способ создания / включения библиотек. И как бы вы отнеслись к созданию библиотеки, которая зависит от других библиотек? На самом деле я не хочу, чтобы библиотеки libgdx находились внутри моей библиотеки. Я хочу включить библиотеки libgdx как обычно. А затем включите мою библиотеку, которая должна каким-то образом зависеть от библиотек libgdx, но не включать их в себя.

Я слышал о Maven и Gradle, но я с ними не знаком. Это то, что я должен использовать для этого или я могу обойтись без?

Приветствуется любая обратная связь.

Комментарии:

1. Возможно, вам следует начать с понимания модулей Java 9, что это такое и как их использовать

2. Да. Было бы неплохо знать больше, чем основы и основные способы использования.

Ответ №1:

Для создания библиотеки вам обязательно следует использовать инструменты сборки, такие как Maven и Gradle. Вы просто настраиваете нужные вам зависимости, и они не включены в вашу собственную библиотеку.

Моя рекомендация для вас — использовать Gradle в качестве инструмента сборки, GitHub в качестве сервиса и Jitpack для публикации библиотеки. Теперь вставьте эти имена в предпочитаемую вами поисковую систему и приступайте. 🙂

Комментарии:

1. Что ж, я видел много людей, высоко оценивающих gradle и то, как он упрощает работу. Так что, возможно, мне просто нужно выяснить, из-за чего весь сыр-бор 🙂