Какую зависимость pom следует использовать для jar commons-lang.jar - PullRequest
4 голосов
/ 07 февраля 2012

Как узнать, какую версию зависимости pom мне следует использовать, если ее версия отсутствует в имени jar. Например, jar commons-lang.jar, какую версию зависимости pom мне следует использовать?

Вот результаты его поиска на центральном репо maven - http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22net.sf.staccatocommons%22%20AND%20a%3A%22commons-lang%22

Ответы [ 3 ]

7 голосов
/ 07 февраля 2012

Сначала используйте Apache.

Во-вторых, у вас есть два варианта: ветки 2.x или 3.x; из поиска mvnrepository.com :

2,6

<dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>2.6</version>
</dependency>

3,1

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.1</version>
</dependency>

Если вы используете Maven, у вас не должно быть "просто баночки", вы должны знать только о зависимостях POM.

(По состоянию на февраль 2014 года - до 3.3.2, серия 2.x по-прежнему на уровне 2.6. Обратите внимание, что вы можете использовать оба в одном приложении из-за их разных пакетов.)

3 голосов
/ 07 февраля 2012

В то время как другие ответы верны, очень удобный способ узнать точное совпадение с неизвестной банкой, где у вас есть только баночка, и она не содержит полезного манифеста, это создать контрольную сумму банку sha1 и затем выполнитьпоиск по контрольной сумме в http://search.maven.org в расширенном поиске внизу или в вашем собственном экземпляре сервера репозитория Nexus, который загрузил индекс центрального репозитория.

И, кстати, ваш поиск по центральному был невернымтак как у него был неправильный groupId как часть этого.Вот исправленная ссылка:

http://search.maven.org/#search%7Cga%7C1%7C%22commons-lang%22

2 голосов
/ 07 февраля 2012

Если вы мигрируете в Maven и у вас просто куча банок, вы можете попробовать проверить их META-INF/MANIFEST.MF файлы внутри этих банок.

Я только что открыл commons-lang.jar и увидел следующее в META-INF/MANIFEST.MF:

...
Implementation-Title: Commons Lang
Implementation-Vendor: The Apache Software Foundation
Implementation-Vendor-Id: org.apache
Implementation-Version: 2.4
...

Таким образом, вы можете использовать Implementation-Version в качестве версии в pom.xml:

<dependency>
  <groupId>commons-lang</groupId>
  <artifactId>commons-lang</artifactId>
  <version>2.4</version>
</dependency>
...