2014-09-23 15 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

相關問題