如果其版本不在jar名称中,我如何知道应该使用哪个版本的pom依赖项。例如jar commons-lang.jar,我应该使用什么版本的pom依赖项?
以下是maven central repo的搜索结果 - http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22net.sf.staccatocommons%22%20AND%20a%3A%22commons-lang%22
答案 0 :(得分: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,你不应该只是“只是一个jar”,你应该只知道POM依赖。
(截至2014年2月,它高达3.3.2,2.x系列仍然是2.6。请注意,可能在同一个应用程序中使用它们,因为它们的包装不同。)< / p>
答案 1 :(得分:3)
虽然其他答案是正确的,但找到一个未知jar的完全匹配非常方便,你所拥有的就是jar本身而且它不包含有用的清单是创建jar的sha1校验和然后做在底部的高级搜索中的http://search.maven.org上或在您自己的下载中央存储库索引的Nexus存储库服务器实例上进行校验和搜索。
顺便说一下你对中心的搜索是不正确的,因为它有错误的groupId作为其中的一部分。这是一个更正的链接:
http://search.maven.org/#search%7Cga%7C1%7C%22commons-lang%22
答案 2 :(得分: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
...
因此,您可以在Implementation-Version
中使用pom.xml
作为您的版本:
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.4</version>
</dependency>