2012-02-07 52 views
4

如何知道我应该使用哪个版本的pom依赖项,如果它的版本不在jar名称中。例如jar commons-lang.jar,我应该使用哪个版本的pom依赖项?我应该使用哪个pom依赖项用于jar commons-lang.jar

下面是行家中央回购其搜索结果 - http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22net.sf.staccatocommons%22%20AND%20a%3A%22commons-lang%22

+0

你确定你使用正确的组ID?我宁愿使用Apache中的一个(http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22commons-lang%22%20AND%20a%3A%22commons-lang%22) – 2012-02-07 16:08:10

+0

但是我应该使用哪个版本?我只有一个名为commons-lang.jar的jar。我应该使用哪个版本? – 2012-02-07 16:13:44

+0

您是否尝试打开JAR并查看META-INF目录?有时版本是在那里给出的...如果没有,你将不得不使用MD5对Apache目录(http://archive.apache.org/dist/commons/lang/binaries/) – 2012-02-07 16:16:50

回答

2

如果你正在迁移到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 
... 

所以,你可以在pom.xml使用Implementation-Version为您的版本:

<dependency> 
    <groupId>commons-lang</groupId> 
    <artifactId>commons-lang</artifactId> 
    <version>2.4</version> 
</dependency> 
+0

很多罐子没有清单文件中的信息。那就是当我在我的回答中使用sha1校验和技巧时... – 2012-02-07 17:24:00

7

首先,使用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年2月就看3.3.2,2.x系列仍处于2.6。请注意,您可能都在同一个应用程序,因为他们不同封装的使用。)

3

而其他的答案是正确的一个非常方便的方法来找到一个未知的jar的完全匹配,你拥有的只是jar本身,并且它不包含有用的清单是创建jar的sha1校验和,然后在上执行校验和搜索位于高级搜索的底部或您自己的下载中央存储库索引的Nexus存储库服务器实例上。

顺便说一句,你在中央搜索是不正确的,因为它有错误的groupId作为它的一部分。这里是一个纠正链接:

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

相关问题