Я уже сталкивался с такой проблемой, но я не дам вам прямого ответа, чтобы решить ваши проблемы. В самом деле, вы пытаетесь сделать что-то, что это не в «Maven путь» ...
За то, что я понимаю, вы пытаетесь помечать:
- только один артефакт, поместив его в идентификатор_группы/артефакта/версия
- или все репо (например, все под багажником).
Пометка один артефакт
В случае мечения только artifact3, вы правы. В первый раз, когда вы пытаетесь пометить, вы не можете сделать это, потому что полная структура не может быть создана в одной команде (тэг 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
Если я ошибаюсь в своих намерениях, не стесняйтесь отвечать мне, давая больше информации.
Удачи :)
В чем причина не создания структуры каталогов TTB по умолчанию в svn? – khmarbaise
@khmarbaise, потому что это создает беспорядок, когда у вас много артефактов и регулярных выпусков. – elmuerte
Если это создает беспорядок, переместите старые теги в тегах/архиве, даже если это явно не лучшее решение (ссылки scm в вас pom не будут следовать вашим ходам) –