|
1 / 1 / 2
Регистрация: 17.03.2016
Сообщений: 234
|
||||||
Разбить программу на несколько отдельных библиотек16.07.2020, 10:34. Показов 3382. Ответов 5
Метки нет (Все метки)
Привет. Подскажите такую вещь:
Например написали мы небольшой пример на Java. Используем сборщик Maven. И вот теперь хотим разбить его на несколько частей, типа на несколько библиотек. Я так понимаю, это должны быть отдельные jar-файлы в итоге. Чтобы потом мы могли подключать их как обычные зависимости:
В общем я хочу какой-нибудь пример простой погуглить и разобрать. Но не знаю, что именно гуглить. Подскажите, кто разбирается, в каком направлении искать примеры, может ссылку какую-нибудь дадите...... Надо: (1) как разбить маленький проект на отдельные библиотеки. (2) упаковать их в jar-файлы (наверное, точно не знаю). (3) и потом собрать готовый проект, где библиотеки будут добавлены как зависимости в pom-файл. Так вообще можно?
0
|
||||||
| 16.07.2020, 10:34 | |
|
Ответы с готовыми решениями:
5
Разбить запись в ячейке на несколько отдельных столбцов Разбить программу на несколько файлов
|
|
Модератор
|
|
| 16.07.2020, 10:57 | |
|
alex_7, Спрашивается зачем делить маленький проект на отдельные библиотеки? Для начала научиться делить проект на пакеты и модули, что будет куда полезнее. Да и смысл создавать свою библиотеку? Без выгрузки в инет никто кроме тебя воспользоваться никто не сможет. И возникнут проблемы если надо будет менять библиотеку, надо будет пересобирать менять файлы зависимости и тд.
1
|
|
|
2752 / 2059 / 509
Регистрация: 17.02.2014
Сообщений: 9,486
|
|||
| 16.07.2020, 11:30 | |||
|
1
|
|||
|
1 / 1 / 2
Регистрация: 17.03.2016
Сообщений: 234
|
|||||||
| 16.07.2020, 17:50 [ТС] | |||||||
|
"Модули" -- не особо понял, что это в данном контексте. Возможно термин "библиотека" я в данный момент немного не верно употребил. Суть в том, что у нас есть проект, и он довольно большой. И надо разбить его на части, чтобы ребята из другого проекта смогли подключать их в своём проекте в pom-файле в разделе dependencies вот в таком виде:
Я думаю, что сходу распилить большой проект у меня не получится, поэтому и решил тут спросить на форуме, может подскажут какие то ссылки и примеры , как это сделать для маленького своего проекта. Ну типа учебный пример где-то может есть. Если надо выложить куда-то в интернет, ну ОК, выложу в интернет. Вы мне подскажите, где я это могу почитать/посмотреть? Я не знаю с чего начать
0
|
|||||||
|
Модератор
|
|
| 16.07.2020, 20:18 | |
|
Под модулями я имел в виду вот это https://habr.com/ru/post/499872/ другие ссылки лень искать)) Я про пакеты и модули говорил в клнтексте первого поста и маленького проекта. Про маленький проект мнения останусь того же, смысла нет делить.
А то что большой проект то надо было сразу об этом писать. Хотя чем тут помочь… имхо это как с делением кода на классы, или проекта на пакеты или модули. Сложно что либо конкретное и полезное советовать. Просто делите проект на обособленные части. Часть должна выполнять похожую группу функций и быть независимой от других частей. И то как вы хотите подключать не реализуемо, в данном случае мавен будет искать у себя на серверах, надо еще в настройках проекта добавлять репозитории где будут ваши библиотек, с этим не сталкивался, помочь не могу. Еще по хорошему код стоит упаковать с исходниками и документацией, на манер других библиотек (не в один jar, а в несколько с соотвествующими именами и структурой). Думаю не надо говорить про создание jar без зависимостей внутри.
1
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 17.07.2020, 13:09 | |
Сообщение было отмечено alex_7 как решение
Решение
Чтобы выделить отдельный функционал в либу, достаточно создать новый проект, положить туда нужные классы и указать в pom.xml что этот проект собирается в джар (<packaging>jar</packaging>)
После запустка mvn clean install можно будет без проблем импортировать эту зависимость во все локальные проекты. Чтобы либа стала доступна другим членам команды, нужно в компании установить artifactory (например), настроить его так, чтобы он проксил мейвен сентрал и всем разработчикам раздать settings.xml, в котором основной репозиторий будет ваш artifactory в локальной сети. Теперь все обычные либы, будут приходить из сентрал и кешится\прокситься на локальном artifactory компании. На этом самом artifactory, надо создать репозитории для внутренних библиотек и деплоить их туда по мере надобности (лучше не руками). Таким образом их смогут подключать все, кто пользуется вашим artifactory PS artifactory выбран для примера. Там может быть nexus или ещё что угодно
2
|
|
| 17.07.2020, 13:09 | |
|
Помогаю со студенческими работами здесь
6
Thread разбить программу в несколько потоков Динамический массив, разбить программу на несколько функций Разбить одну программу на несколько параллельно работающих Разбить программу на файлы, содержащюю несколько публичных структур, перечислений и классов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|