我使用net.sf.jasperreports
作为版本3.6.0的组。
<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
吗?请解释使用群组jasperreports
和net.sf.jasperreports
之间的区别。
答案 0 :(得分:1)
我很确定这是旧版maven约定的继承。 groupId的名称仅仅是一个标识符,因此它只在它正在使用的上下文中必须是唯一的。 Se也http://www.mail-archive.com/users@maven.apache.org/msg34557.html
这意味着只要您不在自己的本地存储库之外使用任何依赖项(并保持脱机),您就可以复制maven中心的依赖项名称,例如junit,primefaces或者其他任何内容。
因此版本3.5.2的jasperreports只使用artifactId作为groupId(反之亦然),但后来的版本将groupId更改为net.sf.jasperreports。
版本之间的依赖关系会发生变化,因此很自然地会出现一些文物&#34;消失&#34;如果你降级。如果您的项目依赖于这些工件,则应在POM中明确将它们定义为依赖项。