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