用過Maven的人都知道,Maven專案的目錄結構跟傳統的DynamicWeb專案有些不同。當然我們按照Maven的規範建專案最好,但是當你恰好沒有按照Maven的規範來,又恰好需要使用Maven來打包,那該怎麼辦呢?其實很簡單,這些都是可以通過配置pom檔案進行更改的。
Maven標準目錄結構:
myproject/
|-- pom.xml
`-- src
|-- main
| |-- java
| | `-- com
| | `-- mycompany
| |-- resources
| `-- webapp
| |-- WEB-INF
| | `-- web.xml
| `-- index.jsp
`-- test
|-- java
| `-- com
| `-- mycompany
`-- resources
上面就是一個標準的Maven目錄結構,而常規Web專案的jsp、js、css等檔案都是放到WebContent/WebRoot裡的。而Maven中,這些檔案是放到webapp下的。所以,如果你直接用Maven進行install也就是打包的時候,你的頁面相關的檔案不會被打包進去,你會發現打好的war包裡只有src下的.class檔案和一些配置檔案。那麼如何將頁面等檔案也包含進去呢?
很簡單,你只要告訴Maven你的jsp放在了什麼位置,具體配置如下:
<build> <finalName>projectName</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.4</version> <configuration> <!--指定web.xml檔案的位置--> <webXml>WebContent\WEB-INF\web.xml</webXml> <!--指定jsp等檔案所在位置--> <warSourceDirectory>WebContent</warSourceDirectory> </configuration> </plugin> </plugins> </build>
OK加上以上配置,然後執行install命令,待打包完畢,你會發現WebContent裡的檔案也全部包含到了war包裡。現在就可以將打好的war包複製到Tomcat下執行了。
可能你會覺得打完包還得手動複製到Tomcat,每次打包都要手動複製一次很麻煩,別急,下一篇會跟大家一起來學習如何用Maven打包並自動部署到Tomcat。一篇部落格學習一點就好了,大家不要著急哦!