1、SOA模块可插拔设计-自定义Jar、War方式模块化系统

典型的有个基础war项目,派生很多子war项目。
如sys.war是基础工程,包含底层Java代码,JavaScript,css,jsp等,子项目a.war,b.war.......在sys.war基础上开发。子项目需要从sys自动复制所有文件过来。子项目如果要覆盖sys项目的文件,只需要在子项目建立存在相同的路径相同的文件名就可以。

sys.war的pom.xml
注意
<attachClasses>true</attachClasses>
<archiveClasses>true</archiveClasses> 
  
   <groupId>com</groupId>
 <version>1.0</version>
 <artifactId>sys</artifactId>
 <packaging>war</packaging>

 <dependencies>
  <dependency>
   <groupId>log4j</groupId>
   <artifactId>log4j</artifactId>
   <version>1.2.16</version>
  </dependency>
 </dependencies>
 
 <build>
  <plugins>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.3</version>
    <configuration>
    <attachClasses>true</attachClasses><!-- 把class打包jar作为附件 -->
      <archiveClasses>true</archiveClasses><!-- 把class打包jar -->
    </configuration>
   </plugin>
  </plugins>
 </build>

 


子项目 a.war
type和classifier
  <groupId>com</groupId>
 <version>1.0</version>
 <artifactId>a</artifactId>
 <packaging>war</packaging>
 <dependencies>
  <dependency>
   <groupId>com</groupId>
   <artifactId>sys</artifactId>
   <version>1.0</version>
   <type>war</type>
  </dependency>
  <dependency>
   <groupId>com</groupId>
   <artifactId>sys</artifactId>
   <version>1.0</version>
   <type>jar</type>
   <classifier>classes</classifier>
  </dependency>
 </dependencies>
 
 <build>
  <pluginManagement>
   <plugins>
    <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-war-plugin</artifactId>
     <version>2.3</version>
    </plugin>
   </plugins>
  </pluginManagement>
 </build>
posted @ 2016-05-22 21:40  韩慧兵  阅读(194)  评论(0编辑  收藏  举报