將專案源碼打包到部署包裝檔 (jar/war) 檔後,當然要試試可否重新編譯及部署,在解開 jar/war 檔後第一眼看見的卻是依附於 jar/war 結構所額外產生的檔案或目錄,如下例:
ada@www ~/Eclipse/SnipSnap/target $ tree -L 2 -F --dirsfirst macro
macro
|-- META-INF/
| |-- maven/
| |-- services/
| `-- MANIFEST.MF
|-- net/
| `-- adahsu/
|-- src/
| |-- main/
| |-- site/
| `-- test/
`-- pom.xml
從這可以發現其實 META-INF/ 及 net/ 兩個目錄其實是不必要的。橫豎留著礙眼,人工去刪除是個方法,但讓 maven2 自行處置會更好。
透過 maven-antrun-plugin 去刪除是個方法,不過 Maven2 官網提供一個更方便且專業的方法:
Delete Additional Files Not Exposed to Maven,這樣只要執行 clean 這個 goal 就可以將所有不需要的目錄、檔案通通刪掉。
以下是使用範例:
<build>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
<fileset>
<directory>META-INF</directory>
</fileset>
<fileset>
<directory>net</directory>
</fileset>
</filesets>
</configuration>
</plugin>
</plugins>
</build>
沒有留言:
張貼留言