讀古今文學網 > Maven實戰 > 18.3.2 Archetype Catalog的來源 >

18.3.2 Archetype Catalog的來源

archetype-catalog.xml能夠提供Archetype的信息,那麼maven-archetype-plugin可以從哪些位置讀取archetype-catalog.xml文件呢?下面是一個列表:

·internal:這是maven-archetype-plugin內置的Archetype Catalog,包含了約58個Archetype信息。

·local:指向用戶本地的Archetype Catalog,其位置為~/.m2/archetype-catalog.xml。需要注意的是,該文件默認是不存在的。

·remote:指向了Maven中央倉庫的Archetype Catalog,其確切的地址為http://repo1.maven.org/maven2/archetype-Catalog.xml。在本書編寫的時候,該Catalog包含了約249個Archetype信息。

·file://...:用戶可以指定本機任何位置的archetype-catalog.xml文件。

·http://...:用戶可以使用HTTP協議指定遠程的archetype-catalog.xml文件。

當用戶運行mvn archetype:generate命令的時候,可以使用archetypeCatalog參數指定插件使用的Catalog。例如:

上述命令指定Archetype插件使用系統/tmp目錄下的archetype-catalog.xml文件。當然,用戶不需要每次運行Archetype目標的時候都去指定Catalog。在maven-archetype-plugin 2.0-beta-4之前的版本中,archetypeCatalog的默認值為「internal,local」,即默認使用插件內置加上用戶本機的Catalog信息,而從maven-archetype-plugin 2.0-beta-5開始,這一默認值變成了「remote,local」,即默認使用中央倉庫加上用戶本機的Catalog信息。用戶也可以使用逗號分隔多個Catalog來源。例如:

該命令指定Archetype從兩個位置讀取Catalog信息。

archetype:generate的輸出也會告訴用戶每一條Archetype信息的來源。例如:

上述輸出片段告訴用戶,archetype 1-4來源於本機的~/.m2/archetype-catalog.xml文件,而archetype 5-9來源於Archetype插件內置的archetype-catalog.xml文件。