Как использовать модули Maven без svn: externals?

Я никогда не понимал, как и зачем мне использовать модули Maven (сборки реакторов).

У нас есть десятки библиотек, которые мы разделяем (как зависимости) между нашими продуктами, а также между библиотеками. Если бы мы переключились на создание модулей Maven, как бы мы настроили его как в SVN, так и в наших рабочих копиях?

Действительно ли модули Maven должны быть вложенными папками? Должны ли они быть вложенными папками в репозитории SVN?

Предполагая, что вам просто нужны подпапки в рабочей копии, я полагаю, что svn:externals будет работать, чтобы сделать, скажем, библиотеку «util» модулем для нескольких проектов одновременно. Но я читал много плохих вещей об использовании svn:externals, потому что ничто не мешает вам изменять код во внешнем коде, но он не отслеживается.

Какие-либо предложения? Я скучаю по лодке на модулях?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
1 647
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Нет ... модульный проект следует использовать только тогда, когда дочерний проект интегрирован в родительский для создания более крупного артефакта, поэтому примером может быть корпоративный проект, в котором ваши модули содержат EJB (сервер и клиент), WAR, а затем они объединяются в файл EAR. Эта модульность предназначена только для удобства и при желании может быть пропущена.

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

Ответ принят как подходящий

Я думаю, это проблема подрывной деятельности. Это заставляет вас создать структуру папок для ветвления. Другие системы контроля версий позволяют выполнять ветвление без видимости в структуре папок, что упрощает создание модулей maven.

Я работаю с продуктом, состоящим из более чем 250 модулей, и они находятся в «логических» модулях maven, которые обозначают только область функционирования. например «CoreService», «Утилиты» и «Приложения». Мы очень довольны использованием для этого модулей maven, так как мы можем быть уверены, что все CoreServices используют определенную версию определенной зависимости и что все приложения получат определенную библиотеку аспектаJ, вплетенную в них.

Однако для вашего решения:

В Subversion есть функция, позволяющая модулю найти своего родителя под названием relativePath, который является тегом в теге parent. Единственная причина помещать подпроекты в родительскую папку - чтобы их можно было поместить в реактор при сборке родительского. Дочерние проекты все еще можно строить (и устанавливать) индивидуально.

Также имеется расширенная поддержка svn:externals в подверсии 1.5, которая допускает относительные URL: s, что также должно пригодиться в этом случае.

-Удачи и сообщите сюда, если найдете решение!

Другие вопросы по теме