У меня есть проект Maven, состоящий из нескольких модулей и субмодулей.Я использую SVN для создания версий исходных файлов.
Краткий рассказ
Как указать URL-адрес в свойствах scm файла POM, относящихся к свойствам его родителя.
Длинная история
Некоторые модули и их подмодули имеют общий номер версии / процесс выпуска, а некоторые используют независимые.Для модуля с независимым номером версии я настроил макет веток / ствола / тегов, чтобы плагин релиза был счастлив.
Для этого у меня есть два SVN-макета в моем хранилище.Один содержит все сообщения о стволах / ветках / тегах, другой содержит чистый готовый к извлечению рабочий каталог с svn: внешние ссылки на соединительные линии.
Это выглядит так;У вас есть реальная разметка SVN с беспорядком ствола / веток / тегов:
- pom.xml (основной родительский элемент)
- utils
- ветви
- теги
- транк
- pom.xml , src, target и т. д. ...
- модель данных ( выпущено )
- ветви
- теги
- транк
- pom.xml
- lib
- pom.xml ,src, target и т. д. *
- сервер
- pom.xml , src, target и т. д..
- клиент
- pom.xml , источник, цель и т. Д. ...
- bin-modules
- bin-module-1 ( выпущено )
- ветви
- теги
- транк
- pom.xml , src, target и т. Д. ...
- bin-module-2 ( освобожден )
- ветви
- теги
- магистраль
- pom.xml , src, target и т.д ...
Ичистый макет рабочей директории, скрывающий ветки / ствол с помощью тегов "svn: externals":
- pom.xml (основной родительский элемент)
- утилит (-> утилит / транк )
- pom.xml , src, target и т.д ...
- модель данных (-> модель данных / магистраль )
- pom.xml
- lib
- pom.xml , src, target и т.д ...
- сервер
- pom.xml , src, target и т. Д. ...
- клиент
- pom.xml , src, target и т.д ...
- бин-модули
- pom.xml
- bin-module-1 (-> bin-module-1 / trunk )
- pom.xml , src, target и т.д ...
- bin-module-2 (-> bin-module-2 / trunk)
- pom.xml , src, target и т.д. ...
Пока все хорошо.Я установил корневые URL-адреса SCM в своем родительском POM, и Maven правильно подразумевает URL-адреса для подмодулей.Я проверил это с помощью mvn help:effective-pom
У меня есть следующие URL-адреса scm:
- root : [root-url]
- utils : [root-url] / utils
- модель данных : [root-url] / data-model /
- data-model / lib : [корневой URL] / модель данных / lib
- модель данных / клиент : [корневой URL] / модель данных / клиент
- модель данных / сервер : [root-url] / модель данных / сервер
- bin-module-1 : [root-url]/ бен-модуль-1 /
- bin-module-2 : [root-url] / bin-module-2 /
Но Maven не знает о фактической структуре SVN.
Хотелось бы увидеть:
- root : [root-url]
- utils : [root-url] / utils / trunk
- модель данных : [root-url] / модель данных / trunk
- модель данных / lib : [root-url] / модель данных / trunk / lib
- модель данных / клиент : [root-url] / модель данных / транк / клиент
- модель данных / сервер : [root-url] / модель данных / транк / сервер
- bin-module-1 : [root-url] / bin-module-1 / trunk
- bin-module-2 : [root-url] / bin-module-2 / trunk
Для этого мне нужно добавить секцию scm в pom.xml
из модели данных , bin-module-1 и бен-модуль-2 .
Я пробовал что-то вроде (для модели данных):
<scm>
<connection>./data-model/trunk</connection>
<developerConnection>./sdr/trunk</developerConnection>
<url>./sdr/trunk</url
</scm>
или
<scm>
<connection>${project.parent.scm.connection}/data-model/trunk</connection>
<developerConnection>${project.parent.scm.developerConnection}/data-model/trunk</developerConnection>
<url>${project.parent.scm.url}/data-model/trunk</url>
</scm>
Но, похоже, никто не работает. Свойства $ {...} даже не заменяются.
Итак, как мне переопределить путь SCM относительно его родительского URL-адреса SCM?
Любая помощь, совет, будет высоко ценится.
Заранее спасибо,
Рафаэль