war项目分别打成JAR和WAR,并被其他项目依赖

来源:互联网 发布:众力网络安装电话 编辑:程序博客网 时间:2024/06/11 20:00
参考:http://blog.csdn.net/kobejayandy/article/details/8143925
http://www.tuicool.com/articles/eMJNza

<1>被依赖的war项目分别打成JAR和war:

<plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-war-plugin</artifactId>
           <version>2.4</version>
        </plugin>
        <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                  <includes>
                 <include>com/**</include>
              </includes>
                </configuration>
                <executions>
                    <execution>
                        <id>make-a-jar</id>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                        <configuration>
                      <classifier>api</classifier>
                     </configuration>
                    </execution>
                </executions>
           </plugin>

<2>引入jar和war包

<!--引入基础war -->
      <dependency>
        <groupId>com.hnjz</groupId>
        <artifactId>hnjz-web-basic</artifactId>
        <version>${hnjz.basic.version}</version>
        <type>war</type>
      </dependency>
      <dependency>
        <groupId>com.hnjz</groupId>
        <artifactId>hnjz-web-basic</artifactId>
        <version>${hnjz.basic.version}</version>
        <type>jar</type>
        <scope>compile</scope>
        <classifier>api</classifier>
      </dependency>

<3>配置两个war包内容合并

<plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-war-plugin</artifactId>
           <version>2.6</version>
           <configuration>
           <!--依赖的war项目,默认在target/war/work中,然后被打包进war文件,指定后为target/work -->
           <workDirectory>${project.build.directory}/work</workDirectory>
           <!-- 告诉maven-war-plugin另一个路径"WebContent",产生的结果就是,执行mvn package,war-pluginwarpath-plugin会将当前war和所有依赖的warweb资源都拷贝到该WebContent目录下.这样,WebContent目录包含的内容就是最终打包成WAR的内容了 ,如果不指定,默认情况下是在 target目录下生成一个,war包解压后的文件夹-->
              <!-- <webappDirectory>WebContent</webappDirectory> -->
              <useCache>false</useCache>
              <archive>
                 <addMavenDescriptor>true</addMavenDescriptor>
              </archive>
              <overlays>
                 <overlay>
                    <groupId>com.hnjz</groupId>
                    <artifactId>hnjz-web-basic</artifactId>
                 </overlay>
                 <overlay>
                    <!-- empty groupId/artifactId is detected as the current build -->
                    <!-- 代表当前WAR项目,默认情况当前WAR项目是先被拷贝,如果要控制其顺序,则使用空的overlay -->
                    <!-- any other overlay will be applied after the current build since
                      they have not been configured in the overlays element -->
                 </overlay>
              </overlays>
              <!-- 排除依赖war包中的哪些文件
              <dependentWarExcludes>*/web.xml,WEB-INF/lib/*,/sql-map-config.xml,/jdbc.properties,/META-INF/*</dependentWarExcludes>
               -->
               <dependentWarExcludes>/META-INF/*</dependentWarExcludes>
           </configuration>
        </plugin>
0 0
原创粉丝点击