Maven最佳实践
盡管Maven提供了“配置之上的約定”解決方案,但是仍然有足夠多的必要配置引起嚴重的頭痛。 在這篇文章中,我將與您分享一些最佳實踐,以簡化對POM文件的維護。 請勿使用已棄用的引用,例如$ {artifactId}或$ {pom.artifactId}。 使用新的$ {project.artifactId}語法。 請注意,此語法遵循XML文檔結構,這使得記住和預測引用將導致的值變得容易。 盡量避免使用繼承的屬性。 開發人員可以輕松地忘記子POM使用某個屬性,并更改該值,從而在意想不到的地方破壞了構建。 其次,在沒有找到和檢查父POM的情況下無法輕松查找屬性的做法很煩人。 使用父pom的dependencymanagement部分來定義所有依賴項版本,但不要在此處設置作用域,以便所有依賴項默認情況下都可以進行作用域編譯。 使用屬性定義依賴項版本。 通過這種方式,您可以概覽正在使用的所有版本,而無需滾動瀏覽依賴項部分的多個頁面。 使用父pom的pluginmanagement部分來定義構建所使用的* all *插件的版本,甚至是標準的maven插件,例如maven-compile-plugin和maven-source-plugin。 這樣,當發布新版本的插件時,您的構建不會突然有所不同。 當使用不在當前POM上方目錄中的父POM時,請在您的父部分中定義一個空的relativePath元素。 使用依賴項插件檢查項目中是否存在不必要的依賴項以及未聲明但未使用的較少依賴項。 該目標稱為“分析”,因此請在控制臺上運行以下命令:“ mvndependency:analyze” 確保pom文件包含下載所有依賴項所需的所有存儲庫引用。 如果要使用本地存儲庫而不是從Internet上進行海峽下載,則可以使用Maven設置文件為poms中定義的各個存儲庫定義鏡像。 如果使用Nexus,則不要創建同時包含托管存儲庫和代理存儲庫的存儲庫組。 這將大大降低響應速度,因為即使托管的存儲庫包含請求的工件,Nexus也會檢查代理存儲庫的遠程位置。 確保還閱讀了Sonatype的最佳實踐 。 參考: Geert Schuring博客上來自JCG合作伙伴 Geert Schuring的Maven最佳實踐 。
翻譯自: https://www.javacodegeeks.com/2012/06/maven-best-practices.html
總結
- 上一篇: Maven的鸟瞰图
- 下一篇: 温泉蛋怎么吃 温泉蛋的吃法