maven2 зависимости - PullRequest
       2

maven2 зависимости

1 голос
/ 02 августа 2010

В pom.xml, когда указывается версия зависимости, в чем разница между LATEST и [0,)? По моему мнению, они должны быть эквивалентными, но для некоторых зависимостей LATEST не соответствует ни одной версии, тогда как [0,) соответствует.

Ответы [ 2 ]

1 голос
/ 03 августа 2010

По моему мнению, они должны быть эквивалентны, но для некоторых зависимостей LATEST не соответствует ни одной версии, тогда как [0,) соответствует.

Теоретически, LATEST является последней выпущенной версией.или версия моментального снимка (см. отличный ответ от Rich продавца о специальных версиях RELEASE и LATEST), поэтому я действительно ожидал бы того же поведения, что и с диапазоном [0,).Из любопытства, можете ли вы привести пример, когда LATEST не совпадает?

При этом я не рекомендую использовать специальные версии LATEST или RELEASE, поскольку они делают вашу сборку более хрупкой и наносят ущерб воспроизводимости сборки.(вы на самом деле не хотите, чтобы ваша сборка внезапно начинала давать сбой из-за неконтролируемого обновления).По общему признанию, они считаются плохой идеей, и ссылки были удалены из документации (кроме непереведенной части немецкой версии Полного руководства), и они больше не поддерживаются в Maven 3.x ,

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

И я почему-то считаю, что применимо то же самоек диапазонам версий (вообще), я не рекомендую их также, поскольку я написал много раз в предыдущих ответах или комментариях.См., Например:


Продолжение после комментария

Вот пример (среди многих):

<dependency> 
  <groupId>aspectj</groupId>
  <artifactId>aspectjrt</artifactId>
  <version>[0,)</version>
</dependency>

-> соответствует версии 1.5.3, тогда как:

<dependency> 
  <groupId>aspectj</groupId>
  <artifactId>aspectjrt</artifactId>
  <version>LATEST</version>
</dependency>

-> не может быть разрешено

Iя не на 100%, но я не думаю, что этот артефакт предоставляет право maven-metadata.xml для работы этой функции.Я думаю, что метаданные должны включать элементы <release> и <latest>, как для плагинов maven (см., Например, это maven-metadata.xml).Но я бы не стал тратить на это слишком много времени по вышеупомянутым причинам, просто забудьте об этом LATEST.

0 голосов
/ 02 августа 2010

Когда вы зависите от плагина или зависимости, вы можете использовать значение версии LATEST или RELEASE.ПОСЛЕДНИЙ относится к последней выпущенной версии или версии моментального снимка конкретного артефакта, самого последнего развернутого артефакта в определенном хранилище.RELEASE относится к последнему выпуску без моментальных снимков в хранилище.В целом, не рекомендуется разрабатывать программное обеспечение, которое зависит от неспецифической версии артефакта.Если вы разрабатываете программное обеспечение, вы можете использовать RELEASE или LATEST для удобства, чтобы вам не приходилось обновлять номера версий при выпуске нового выпуска сторонней библиотеки.Когда вы выпускаете программное обеспечение, вы всегда должны следить за тем, чтобы ваш проект зависел от конкретных версий, чтобы уменьшить шансы вашей сборки или проекта повлиять на выпуск программного обеспечения, который не находится под вашим контролем.Используйте LATEST и RELEASE с осторожностью, если вообще.

См. , для получения дополнительной информации по этой теме.

Убедитесь, что артефакт вы ищетедля присутствует в вашем локальном хранилище.

Однако я должен предупредить вас о маркерах версий LATEST и RELEASE, поскольку, как сказано в выдержке из документации, работать с ними считается плохой практикой.На самом деле, я думаю, что маркеры версий LATEST и RELEASE больше не будут поддерживаться в Maven 3.X.

Я рекомендую полностью отказаться от использования и придерживаться обозначения конкретной версии.

РЕДАКТИРОВАТЬ:

Вот POST , который адресовал ту же самую информацию, но более вдумчиво.

Спасибо @Pascal Thivent занаблюдение :) Я всегда включаю ссылку на другие вопросы StackOverflow, которые касаются той же темы, которую я обсуждаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...