2014-09-23 116 views
1

我使用net.sf.jasperreports作为3.6.0版本的组。groupids net.sf.jasperreports和jasperreports之间的差异

<dependency> 
    <groupId>net.sf.jasperreports</groupId> 
    <artifactId>jasperreports</artifactId> 
    <version>3.6.0</version> 
</dependency> 

由于某些原因,我被要求降级到版本3.5.2。

<dependency> 
    <groupId>jasperreports</groupId> 
    <artifactId>jasperreports</artifactId> 
    <version>3.5.2</version> 
</dependency> 

当我已经采取了建立它是观察到一些的jar文件丢失一样,

jcommon-1.0.15.jar 
jdtcore-3.1.0.jar 

谁能请解释我为什么发生这种情况。这些罐子是来自net.sf.jasperreports吗?请解释使用groupids jasperreportsnet.sf.jasperreports之间的区别。

回答

1

我很确定这是来自较老的maven约定的继承。 groupId的名称仅仅是一个标识符,因此它只能在使用的上下文中唯一确定。也是http://www.mail-archive.com/[email protected]/msg34557.html

这意味着只要你没有在你自己的本地仓库之外使用任何依赖(并且保持离线状态),你可以在maven central中复制依赖的名字,例如junit,primefaces或者其他。

因此,jasperreports的3.5.2版本只是将artifactId用作groupId(反之亦然),但后来的版本将groupId更改为net.sf.jasperreports。

版本之间的依赖关系发生变化,因此如果您降级,某些工件“消失”是非常自然的。如果你的项目依赖于这些工件,你应该明确地将它们定义为POM中的依赖关系。

+0

这些遗漏的jar是否会对应用程序产生任何影响? – NaaN 2014-09-24 08:16:07

+0

除非你特别需要他们为你自己的代码,否则他们不应该。 – 2014-09-25 11:21:40