Вот сценарий:
Две сборки проекта Maven 3.
В сборке 1 есть файлы jar моментальных снимков, которые развертываются в Nexus.
Сборка 2 зависит от моментальных снимков, на которые ссылаются как 1.0.0-SNAPSHOT, которые упаковываются и архивируются с помощью команды mvn clean packageassembly:single
.
Проблема, с которой мы столкнулись: Иногда, когда создается сборка, в файле МАНИФЕСТА для jar-файла иногда указывается some.jar.1.0.0-SNAPSHOT, а иногда — some.jar.1.0.0-datetimestamp. , что приводит к ошибкам, когда класс не определен.
Есть ли способ предотвратить эту проблему с именами в файле манифеста?
--edit--
Дальнейшие исследования выявили следующее:
«Если моментальный снимок был разрешен из репозитория, он будет иметь временную метку, если он пришел из реактора или локального репо, то это будет -SNAPSHOT. Плагин вызывает логику разрешения maven, так что это основной maven поведение. «
Это именно та проблема, с которой мы столкнулись. Во втором файле манифеста сборки всегда есть запись ./lib/Framework-1.0.0-SNAPSHOT.jar, где в качестве фактического файла jar имя изменяется между ./lib/Framework-1.0.0-SNAPSHOT.jarи ./lib/Framework-1.0.0-timestamp.jarна основе приведенной выше цитаты.