Я бы хотел, чтобы наши функциональные тесты запускались из Maven с использованием версии с метками времени (например, api-0.5.0-20110706.191935-1.jar) снимков в classpath. Однако, хотя я вижу, что у нас есть версии с метками времени, которые находятся в нашем хранилище Artifactory, Maven ссылается на api-0.5.0-SNAPSHOT.jar и разрешает его из локального хранилища.
Фон
Наш сервер непрерывной интеграции (CI) имеет две соответствующие сборки. Серверная сборка запускается mvn deploy
, а новые снимки появляются в правильно построенном хранилище.
У нас также есть функциональная тестовая сборка, которая получает последнюю правильную сборку, развертывается на сервере разработки и затем запускает тесты для него.
Похоже, что сборка функционального теста основана на API-0.5.0-SNAPSHOT.jar. Когда выполняется сборка сервера, он заменяет снимок в локальном репозитории, и мы начинаем получать ошибки NoClassDeFond из сборки функционального теста.
Следовательно, я хочу, чтобы сборка функционального теста использовала версии с метками времени.
Опции, о которых я сейчас знаю:
- Объявите репозиторий моментальных снимков в POM и убедитесь, что uniqueVersion имеет значение true (я скоро запустите сборку, пытаясь это сделать).
- Используйте цель
version lock:snapshots
, чтобы установить версии в pom на версию с меткой времени.
- Рассмотрите возможность запуска сборки сервера и функциональных тестов за один вызов с сервера CI. (т.е. удаление сборки Сервера).