讀古今文學網 > Maven實戰 > 12.3.1 account-web的POM >

12.3.1 account-web的POM

除了使用打包方式war之外,Web項目的POM與一般項目並沒多大的區別。account-web的POM代碼見代碼清單12-8。

代碼清單12-8 account-web的POM

如上述代碼所示,account-web的packaging元素值為war,表示這是一個Web項目,需要以war方式進行打包。account-web依賴於servlet-api和jsp-api這兩個幾乎所有Web項目都要依賴的包,它們為servlet和jsp的編寫提供支持。需要注意的是,這兩個依賴的範圍是provided,表示它們最終不會被打包至war文件中,這是因為幾乎所有Web容器都會提供這兩個類庫,如果war包中重複出現,就會導致潛在的依賴衝突問題。account-web還依賴於account-service和spring-web,其中前者為Web應用提供底層支持,後者為Web應用提供Spring的集成支持。

在一些Web項目中,讀者可能會看到finalName元素的配置。該元素用來標識項目生成的主構件的名稱,該元素的默認值已在超級POM中設定,值為${project.artifactId}-${project.version},因此代碼清單12-8對應的主構件名稱為account-web-1.0.0-SNAPSHOT.war。不過,這樣的名稱顯然不利於部署,不管是測試環境還是最終產品環境,我們都不想在訪問頁面的時候輸入冗長的地址,因此我們會需要名字更為簡潔的war包。這時可以如下所示配置finalName元素:

經此配置後,項目生成的war包名稱就會成為account.war,更方便部署。