Maven 2 - 打包 war (含 applet)

在 Maven 裡面打包 war 應該是最簡單的了, 照著 Maven 的目錄結構放好, 他就會自動去幫你把程式打包好. 唯一的問題是, 如果有用到 applet, 那就得另外處理了. 一個簡單的方法, 把 applet 設定成 war 的 dependency, 那就會把 applet 放到 WEB-INF/lib 下面, 不過這樣子似乎無法呼叫到 (這部分如果有解麻煩指正).

另外的方法是用 Maven 的 maven-dependency-plugin, 做法如下:

  1. 先把 applet 打包好, 並且記得在使用 Maven 時加上 install 這個 goal, 這樣就會把打包好的 applet 放到 local repository 裡面去.
  2. 使用 maven-dependency-plugin 的 copy, 將 applet 放到指定的目錄. 這裡因為要放到 root, 所以指定的是 ${project.build.directory}/app-war-1.0. 後面的 "app-war-1.0" 請依照實際的專案修改.
 1  <build>
 2    <plugins>
 3      <plugin>
 4        <artifactid>maven-dependency-plugin</artifactid>
 5        <version>2.2</version>
 6        <executions>
 7          <execution>
 8            <id>copy</id>
 9            <phase>prepare-package</phase>
10            <goals>
11              <goal>copy</goal>
12            </goals>
13            <configuration>
14              <artifactitems>
15                <artifactitem>
16                  <groupid>com.yourcompany</groupid>
17                  <artifactid>app-client</artifactid>
18                  <version>1.0</version>
19                  <type>jar</type>
20                  <overwrite>true</overwrite>
21                  <destfilename>app-client.jar</destfilename>
22                </artifactitem>
23              </artifactitems>
24              <outputdirectory>${project.build.directory}/app-war-1.0</outputdirectory>
25            </configuration>
26          </execution>
27        </executions>
28      </plugin>
29    </plugins>
30  </build>

Reference

http://maven.apache.org/plugins/maven-dependency-plugin/