groupids net.sf.jasperreports和jasperreports之间的差异
问题描述:
我使用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 jasperreports
和net.sf.jasperreports
之间的区别。
答
我很确定这是来自较老的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中的依赖关系。
这些遗漏的jar是否会对应用程序产生任何影响? – NaaN 2014-09-24 08:16:07
除非你特别需要他们为你自己的代码,否则他们不应该。 – 2014-09-25 11:21:40