maven-war-plugin的使用

插件介绍
此插件能够收集web应用所有的依赖,类和资源文件,然后把它们打包归档



使用
这里有四种方式来使用
  • 在package阶段使用,同时项目打包的类型为war
  • war:war目标调用
  • war:exploded目标调用
  • war:inplace目标调用

注意:当使用war:目标时,有个前提是编译阶段已经完成,因为本身不会编译java代码和复制资源文件


在package阶段使用,同时项目打包的类型为war/war:war目标调用
这是最常用的使用方式,为了说明,下面贴出pom.xml
<project>
  ...
  <groupId>com.example.projects</groupId>
  <artifactId>documentedproject</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>Documented Project</name>
  <url>http://example.com</url>
  ...
</project>


项目的结构看起来像这样
 |-- pom.xml
 `-- src
     `-- main
         |-- java
         |   `-- com
         |       `-- example
         |           `-- projects
         |               `-- SampleAction.java
         |-- resources
         |   `-- images
         |       `-- sampleimage.jpg
         `-- webapp
             |-- WEB-INF
             |   `-- web.xml
             |-- index.jsp
             `-- jsp
                 `-- websource.jsp

调用
mvn package

或者
mvn compile war:war

将会生成war在 target/documentedproject-1.0-SNAPSHOT.war,下面贴出war的内容
documentedproject-1.0-SNAPSHOT.war
  |-- META-INF
  |   |-- MANIFEST.MF
  |   `-- maven
  |       `-- com.example.projects
  |           `-- documentedproject
  |               |-- pom.properties
  |               `-- pom.xml
  |-- WEB-INF
  |   |-- classes
  |   |   |-- com
  |   |   |   `-- example
  |   |   |       `-- projects
  |   |   |           `-- SampleAction.class
  |   |   `-- images
  |   |       `-- sampleimage.jpg
  |   `-- web.xml
  |-- index.jsp
  `-- jsp
      `-- websource.jsp


war:exploded目标调用
在开发阶段为了加快测试, war:exploded可以生成已经展开(解压)的WAR,下面是调用的方式
mvn compile war:exploded

将会在 target/documentedproject-1.0-SNAPSHOT生成带版本的展开(解压)的WAR文件,.目录的内容看起来像这样。
 documentedproject-1.0-SNAPSHOT
 |-- META-INF
 |-- WEB-INF
 |   |-- classes
 |   |   |-- com
 |   |   |   `-- example
 |   |   |       `-- projects
 |   |   |           `-- SampleAction.class
 |   |   `-- images
 |   |       `-- sampleimage.jpg
 |   `-- web.xml
 |-- index.jsp
 `-- jsp
     `-- websource.jsp

展开(解压)的WAR默认目录是 target/<finalName>,这个 finalName通常的形式是 <artifactId>-<version>。可以修改 webappDirectory 参数来覆盖WAR默认目录
<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.0.0</version>
        <configuration>
          <webappDirectory>/sample/servlet/container/deploy/directory</webappDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>
  ...
</project>


war:inplace目标调用
war:exploded的变化是 war:inplace。当用 war:inplace时,展开(解压)的WAR目录是在 webapp中,默认是 src/main/webapp。调用方式如下:
mvn compile war:inplace

结果如下所示
|-- pom.xml
 |-- src
 |   `-- main
 |       |-- java
 |       |   `-- com
 |       |       `-- example
 |       |           `-- projects
 |       |               `-- SampleAction.java
 |       |-- resources
 |       |   `-- images
 |       |       `-- sampleimage.jpg
 |       `-- webapp
 |           |-- META-INF
 |           |-- WEB-INF
 |           |   |-- classes
 |           |   |   |-- com
 |           |   |   |   `-- example
 |           |   |   |       `-- projects
 |           |   |   |           `-- SampleAction.class
 |           |   |   `-- images
 |           |   |       `-- sampleimage.jpg
 |           |   `-- web.xml
 |           |-- index.jsp
 |           `-- jsp
 |               `-- websource.jsp
 `-- target
     `-- classes
         |-- com
         |   `-- example
         |       `-- projects
         |           `-- SampleAction.class
         `-- images
             `-- sampleimage.jpg



参考链接
http://maven.apache.org/plugins/maven-war-plugin/index.html

猜你喜欢

转载自liyghting.iteye.com/blog/2337122