2014-01-10 3 views
1

Можно ли запустить Maven, как если бы вы были на другом свидании?Как запустить Maven, как если бы вы были в прошлом

Моя проблема в том, что у меня есть помпочка, которая работала с большим количеством версий «RELEASE» месяц назад, но теперь некоторые изменения в пакетах не позволяют моему проекту работать (поддержка некоторых функций была прекращена). К сожалению, этих зависимостей довольно много, и я не знаю, какая версия была в то время, есть ли способ запустить maven и сказать, чтобы загрузить пакеты, которые были версией «RELEASE» на указанную дату?

Я редактирую, потому что чувствую, что плохо объяснил свою проблему.

Предположим, у меня есть следующая зависимость в моем pom.xml

<dependency> 
     <groupId>commons-io</groupId> 
     <artifactId>commons-io</artifactId> 
     <version>RELEASE</version> 
    </dependency> 

Если я бегу «МВН-то» сегодня он будет получать commons-io 2.4, но если бы я был бежать два года назад это было бы сгружен commons-io 2.2

Я хотел бы запустить maven и сказать ему, чтобы пакет был версией RELEASE в прошлом.

+0

AFAIK, Maven не может с этим поделать. SCM может помочь – Keerthivasan

+0

Итак, кто-то избил «выпускные» версии ваших зависимых артефактов? –

+0

Надеюсь, у вас есть система управления версиями, в которой у вас есть теги/снимки всех тех версий, о которых вы говорите. Maven - не волшебный молот, который решает все ваши проблемы, только ваш мозг - такой инструмент. – Gimby

ответ

0

Это может быть невозможно с помощью maven, чтобы вернуть файл pom в соответствии с конкретной датой, я думаю, чтобы преодолеть этот тип проблем и получить больше преимуществ, которые мы используем SVN, GIT.

Maven - это всего лишь инструмент построения, не похожий или не предоставляющий какую-либо функцию для контроля версий, или может отслеживать изменения в зависимостях.

+0

Да, может, но я не думаю, что он может вернуть обратно версии ваших зависимостей, как это было раньше, если он может, пожалуйста, дайте мне знать, это может быть полезно для меня тоже. –

1

Нет, невозможно разрешить версии «как если бы» в определенное время в прошлом, и по этой причине почти всегда предпочтительнее использовать явные версии, а не LATEST или RELEASE.

Если у вас есть конкретная дата, вы можете проверить Центральную (например, for commons-io) и посмотреть последнюю версию, развернутую до этой даты. Затем вам нужно будет отредактировать своего pom, чтобы использовать эту версию.

Центр имеет API (например, those same commons-io results as JSON), который позволит вам автоматизировать это.

0

Я не знаю, Maven хорошо, и я не уверен, что это будет работать, но это может дать вам несколько идей:

1: Резервное копирование файла pom.xml (так что вы можете восстановить, если следующее Безразлично 't work)
2: Удалите все теги зависимостей в файле pom.xml.
3: Вставьте только основные теги зависимостей для основных файлов jar (пример: спящий режим или весна) (и другие) и укажите их (старые) версии в теге.
4: Компиляция.
5: Я верю, что maven загрузит соответствующие версии любых поддерживающих файлов jar (например, commons-io), которые нужны для этих версий спящего режима и весны.
6: Повторите шаги с 3 по 5 для любых других крупных файлов jar после перехода на их веб-страницы и посмотрите, какая версия была в прошлом в том, что вам нужно.

Смежные вопросы