Как настроить цель развертывания Maven или проект Maven для развертывания с другим путем или именем?

У меня есть следующий репозиторий, доступный для моего проекта Maven, где я могу публиковать артефакты моментальных снимков:

<distributionManagement>
    <repository>
        <id>artifactory-releases</id>
        <url>https://artifactory.company.com/mvn-release-local</url>
    </repository>
    <snapshotRepository>
        <id>artifactory-snapshots</id>
        <url>https://artifactory.company.com/mvn-snapshot-local</url>
    </snapshotRepository>
</distributionManagement>

Как я могу перенастроить свою установку (pom.xml) или цель развертывания (mvn deploy), чтобы развернуть мои артефакты по альтернативному пути в этом репозитории или чтобы файлы имели другой префикс имени в этом репозитории.

Я не могу: * изменить репозиторий (это единственный, в который я должен нажать) * разрешить отправку моих тестовых развертываний в то же место, где проект уже настроен для отправки (на основе Maven groupId и artifactId), потому что я переписал бы снимки, уже отправленные туда, с моим тестом

Я также не хочу менять свои Maven groupId и artifactId. Это связано с тем, что это вызовет слишком много изменений в этом многомодульном проекте Maven.

Пользовательский пример: я хочу провести несколько тестов с методом развертывания прототипа, и я должен был протестировать его с тем же репозиторием без серьезного рефакторинга. Просто разверните немного другой/параллельный путь в этом репозитории Maven.

Цель deploy:deploy не кажется настраиваемой. в этом отношении.


person Gabriel Petrovay    schedule 28.04.2020    source источник


Ответы (1)


Путь, который вы развертываете внутри репозитория, полностью определяется координатами Maven (идентификатор группы, идентификатор артефакта, версия, расширение, классификатор) и не может быть изменен.

person J Fabian Meier    schedule 28.04.2020
comment
Что уж говорить о классификаторе. Могу ли я повлиять на это? И будут ли артефакты по-прежнему попадать в snapshotRepository, если классификатор не SNAPSHOT? - person Gabriel Petrovay; 28.04.2020
comment
1. SNAPSHOT это не классификатор, а часть версии. 2. Вы можете влиять на классификатор, но классификаторы предназначены для побочных артефактов, таких как javadoc или sources. Побочный артефакт не может иметь собственный POM. Так что это, вероятно, не то, что вы хотите. - person J Fabian Meier; 28.04.2020
comment
Для подобных случаев мы использовали номера версий, такие как 1.2.3-MIGRATED-SNAPSHOT вместо 1.2.3-SNAPSHOT. - person J Fabian Meier; 28.04.2020
comment
На данный момент я закончил sed созданием groupId во всех pom.xml файлах, заменив элементы артефакта и зависимости groupId. Он работает, но недостаточно гибок. - person Gabriel Petrovay; 28.04.2020