可以在命令行或通過m2eclipse的New Maven Project向導運行。 通過對Maven原型的支持,其他IDE(例如NetBeans,IntelliJ等)也可以使用它。
開始使用Maven原型最困難的是現有的相對較差的文檔。 除了最基本的用途( archetype:create-from-project )之外,它可以在已有的maven項目或父項目的情況下創建原型,沒有什么可做的。 因此,這里有一些提示。
目錄/文件名替換
在模板生成過程中,有些情況下您要輸出不同的模塊名稱,有時還要輸出不同的文件名。 為此,請使用變量名重命名您要替換的目錄或文件部分。 例如,如果您將__rootArtifactId__指定為目錄名或文件名的一部分,則將替換在mvn archetype:generate期間輸入為artifactId的內容。 您可以對自定義屬性執行相同的操作。 例子
內置屬性
在替換過程中可以使用一些內置屬性。 這些是:
- groupId
- artifactId
- rootArtifactId
- 版
- package –基本的Java程序包名稱,在項目創建期間放置在src / main / java中。
您也可以在POM和其他文件模板中使用它們。
Archetype-metadata.xml
創建項目后,存儲在archetype-resources / META-INF / maven文件夾中的archetype-metadata.xml是您需要調整要生成的內容和方式的地方。
對于模塊,您需要調整屬性:
- id –這是將要生成的模塊的名稱。
- dir –模板目錄
- 名稱-將放置在pom文件中的工件ID。
對于id和name屬性,您可以使用標準的Maven屬性規范:$ {someproperty}。 對于目錄,您需要使用特殊的__someproperty__表示法。 在大多數情況下,這將是__rootArtifactId__。 姜黃SOA原型中的一個例子。
必需的屬性
必需屬性是提示您提示可在模板中替代的其他信息的方式。 生成過程中將提示您指定的任何屬性。 您也可以使用-D選項從命令行傳遞它們。 必需的屬性在模板中作為屬性引用,并在生成過程中被替換。
請注意指定默認值,在生成過程中不會提示您輸入默認值。 仍可以使用-D選項覆蓋它們。
原型目錄
擁有原型目錄很重要。 如果您使用的是Nexus 1.9.x,它將自動搜索您的存儲庫并為每個存儲庫生成原型目錄。 它掃描所有原型,并且在部署原型后立即更新目錄條目。 如果您還沒有原型目錄,那么maven可以從本地存儲庫為您創建一個原型目錄。 只需運行mvn archetype:crawl。 輸出將放置在您的.m2存儲庫中。 原型很重要,因為它們可以讓其他人知道您的自定義原型,并提供一種共享和發現它們的方式。
Hopefull提供了這些技巧,您可以免除我所忍受的一些麻煩。 我的下一個任務是幫助Minerva項目創建一些原型,從而使Eclipse項目可以更輕松地開始使用Tycho。
您還有其他提示或需要注意的事項嗎? 如果是這樣,請隨時添加評論。
參考:來自JCG合作伙伴的 Maven原型創建技巧 ? David Carver在智力抽筋博客上。
翻譯自: https://www.javacodegeeks.com/2012/02/maven-archetype-creation-tips.html