Полагаю, это довольно очевидно, но я все же считаю это недостатком ...
У меня 23 проекта Mavenized. Теперь я добавляю бит , потому что я начал использовать плагин релиза. Вот мой мыслительный процесс:
- Я добавлю раздел только в моей компании base POM и параметризую URL-адреса с помощью свойств, например,
<scm>
<connection>${scmBaseConnection}/${scm.module}/${scm.edition}</connection>
<developerConnection>${scmBaseConnection}/${scm.module}/${scm.edition}</developerConnection>
<url>${fisheyeBaseUrl}/${scm.module}</url>
</scm>
- Тогда каждый POM корневого (агрегаторного) проекта должен только объявить свою scm.
<properties>
соответственно (и не должен повторно объявлять весь раздел), например ::
<scm.module>sharktopus</scm.module>
<scm.edition>trunk</scm.edition>
Но вскоре я понял, что не могу этого сделать: плагин релиза переписывает каждого POM с тегами и next версий информации SCM, поэтому каждому такому POM нужен свой собственный раздел.
Хорошо, поэтому я решил сохранить общие детали SCM в базовых свойствах POM, и каждый корневой POM проекта объявит свой раздел , используя эти реквизиты, плюс свою собственную специфику, например ::1010*
<scm>
<connection>${scmBaseConnection}/sharktopus/trunk</connection>
<developerConnection>${scmBaseConnection}/sharktopus/trunk</developerConnection>
<url>${fisheyeBaseUrl}/sharktopus</url>
</scm>
Но это тоже не работает, потому что плагин релиза переписывает с использованием разрешенных значений (что довольно очевидно, задним числом). Так, например, для тега release POM приведенная выше информация будет переписана как:
<scm>
<connection>scm:svn:https://mysvnhost.net/sharktopus/tags/R1_NewStuff</connection>
<developerConnection>scm:svn:https://mysvnhost.net/sharktopus/tags/R1_NewStuff</developerConnection>
<url>https://mysvnhost.net/sharktopus</url>
</scm>
Это означает, что у каждого POM должен быть свой собственный раздел с жестко закодированными URL .
- Это то, что все делают?
- Что произойдет, если ваши URL-адреса SCM изменятся - вы просто выполняете поиск / замену во всех своих проектах?
- Может ли это быть запросом функции к плагину релиза, чтобы переписать частичные URL, например сохранить ссылки на свойства, но перезаписать «окончательную» специфику?