利用Maven的War Overlays实现War包资源共享

  • Post author:
  • Post category:其他


Maven War plugin提供了overlays功能,overlays提供了多个web应用程序共享资源的途径。通过overlays,可以通过包依赖实现个性化定制开发,而不是直接在已有成熟软件的源码下进行个性化定制开发。



overlays 样例

假设当前正在构建的项目documentedproject有如下结构

 |-- pom.xml
 `-- src
     `-- main
         |-- java
         |   `-- com
         |       `-- example
         |           `-- projects
         |               `-- SampleAction.java
         |-- resources
         |   |-- images
         |   |   `-- sampleimage.jpg
         |   `-- sampleresource
         `-- webapp
             |-- WEB-INF
             |   `-- web.xml
             |-- index.jsp
             `-- jsp
                 `-- websource.jsp

该项目依赖于另一个war包documentedprojectdependency-1.0-SNAPSHOT.war

 ...
  <dependencies>
    <dependency>
      <groupId>com.example.projects</groupId>
      <artifactId>documentedprojectdependency</artifactId>
      <version>1.0-SNAPSHOT</version>
      <type>war</type>
      <scope>runtime</scope>
    </dependency>
    ...
  </dependencies>
  ...

该war包依赖有如下结构

documentedprojectdependency-1.0-SNAPSHOT.war
 |-- META-INF
 |   |-- MANIFEST.MF
 |   `-- maven
 |       `-- com.example.projects
 |           `-- documentedprojectdependency
 |               |-- pom.properties
 |               `-- pom.xml
 |-- WEB-INF
 |   |-- classes
 |   |   |-- com
 |   |   |   `-- example
 |   |   |       `-- projects
 |   |   |           `-- SampleActionDependency.class
 |   |   `-- images
 |   |       `-- sampleimage-dependency.jpg
 |   `-- web.xml
 `-- index-dependency.jsp

当前构建的项目documentedproject最后生成的war包将会有如下结构

|-- META-INF
 |   |-- MANIFEST.MF
 |   `-- maven
 |       `-- com.example.projects
 |           `-- documentedproject
 |               |-- pom.properties
 |               `-- pom.xml
 |-- WEB-INF
 |   |-- classes
 |   |   |-- com
 |   |   |   `-- example
 |   |   |      



版权声明:本文为skyupward原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。