2011-05-17 81 views
3

我有一個Maven項目依賴於Javassist進行版本3.12.1.GA,並有2個倉庫(除中央一):JBoss的(https://開頭庫.jboss.org/nexus/content/groups/public)和Java.net(http://download.java.net/maven/2)。Maven的「版本」的插件,版本號順序

這裏是Javassist是每個庫中的最新可用版本:

  • 中央:3.12.1.GA
  • JBoss的:3.12.1.GA(還包含3.3版本,見下文)
  • Java.net:3.3(唯一可用的版本)

當我運行mvn versions:display-dependency-updates,它說,我可以升級了Javassist版本:

javassist:javassist ......... 3.12.1.GA -> 3.3 

這意味着3.3 > 3.12.1.GA,在這種情況下,它不是真的!

如何告訴版本插件它不應該觸摸javassist,或者它應該使用另一個順序來執行此特定的依賴關係?

+0

您必須使用版本插件定義您自己的規則,因爲javaassist不遵循Maven方式的版本編號。 – khmarbaise 2011-05-17 16:34:08

回答

2

原因是,Maven將版本號(不是Maven格式)視爲字符串,因此3.3大於3.12.1.GA 您可以使用versions-maven-plugin並定義排除javassist(-Dexcludes = javassist:javassist)。 或者你可以編寫自己的版本比較和使用它作爲規則集。

如果您正在運行自己的資源庫管理器,那麼您當然可以使用正確的Maven版本編號手動添加javassist jar,以便versions-maven-plugin按預期工作。