Я уже сталкивался с такой проблемой, но я не дам вам прямого ответа, чтобы решить ваши проблемы. В самом деле, вы пытаетесь сделать что-то, что не по-мавенски ...
Насколько я понимаю, вы пытаетесь пометить:
- только один артефакт, помещая его в groupId / artifactID / version
- или все репо (например, все под стволом).
Пометка одного артефакта
Только в случае пометки артефакта3 вы правы. В первый раз, когда вы пытаетесь пометить тегом, вы не можете сделать это, потому что полная структура не может быть создана одним коммандом (тег svn действительно является копией, а команда копирования не поддерживает опцию, позволяющую копировать И создавать каталог, например, " mkdir -p "в Linux.
Но, несмотря на то, что условные обозначения Maven (поведение по умолчанию) - это теги / artifactId-версия, вы можете предварительно создать собственную структуру и собственный шаблон для выполнения выпуска (через IDE или в командной строке svn). Затем измените tagNameFormat по своему желанию (и, как вам кажется):
<project>
[...]
<build>
[...]
<plugins>
[...]
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<tagNameFormat>${groupId}/${artifactId}/@{project.version}</tagNameFormat>
</configuration>
</plugin>
[...]
</plugins>
[...]
</build>
[...]
</project>
Вы также можете изменить tagBase, как сказал khmarbaise, с помощью комбинации tagBase и tagFormat (для переопределения поведения по умолчанию).
Я никогда не пробовал это, но это должно работать. Обратите внимание, что в версии используется @, а не $ (ее нельзя заменять во время коммита или до, но использовать позже во время операции taggin).
Очевидно, вам нужно будет создать подходящую структуру для каждого артефакта, который вы хотите пометить таким образом. Но вам нужно будет сделать это только один раз.
Пометка всех артефактов
Если вы хотите пометить все артефакты за один раз, это будет намного сложнее.
Я не уверен, что это то, что вы хотите, поэтому я буду кратким, давая только некоторые подсказки:
- если ваши компоненты связаны друг с другом, просто соберите многомодульный проект (и запустите на нем выпуск mvn) со всеми вложенными модулями (это правильный путь)
- если нет, вам не придется помечать их вместе; D
Если я ошибаюсь в ваших намерениях, не стесняйтесь отвечать мне, предоставляя дополнительную информацию.
Удачи:)