Maven打包:将classes打成Jar,之后打到War中(或打成jar),过滤指定目录。

一、 将classes打成Jar,之后打到War中。


1.在pom的开始部分定义整个工程打war包
   <artifactId>mtop_prj</artifactId>
    <packaging>war</packaging>
   <name>mtop_prj</name>

2.在plugin配置部分,定义将classes下的打为jar,放在lib目录下
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
     <encoding>UTF-8</encoding>
    </configuration>
    <executions>
     <execution>
      <phase>generate-sources</phase>
      <goals>
       <goal>jar</goal>
      </goals>
      <configuration>
       <classesDirectory>${project.basedir}/src/main/webapp/WEB-INF/classes</classesDirectory>
       <finalName>testJar</finalName>
       <outputDirectory>${project.basedir}/src/main/webapp/WEB-INF/lib</outputDirectory>
      </configuration>
     </execution>
    </executions>
   </plugin>
   
   
  这个参数的配置<phase>generate-sources</phase>,需要了解Maven的生命周期来设置,如果设置成package,只会打Jar放到lib下并不能打到War包中。

 

二、 将classes打成Jar,之后工程打jar包。 

1. 定义将工程打jar包(默认配置)

 <groupId>com.mercur.vas</groupId>
 <artifactId>mvas_statistics_prj</artifactId>
 <packaging>jar</packaging>
 <name>mvas_statistics_prj</name>

 

 2. 在plugin中定义一个execution先将classes/com目录打jar放到lib目录,再定义一个execution,id设置为default-jar(同默认jar的id),过滤掉classes/com目录

    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <executions>

     <!-- 定义在prepare-package时将classes/com打jar -->
     <execution>
      <phase>prepare-package</phase>
      <goals>
       <goal>jar</goal>
      </goals>
      <configuration>
       <classesDirectory>${project.basedir}/src/main/webapp/WEB-INF/classes/</classesDirectory>
       <finalName>mvas_top_server</finalName>
       <outputDirectory>${project.basedir}/src/main/webapp/WEB-INF/classes/lib/</outputDirectory>
       <includes>
        
<include>com/**</include>
       </includes>
      </configuration>
     </execution>

     <!-- 定义execution,设置id为 default-jar,同默认配置的id,在package时过滤掉classes/com -->

     <execution>
      <id>default-jar</id>
      <phase>package</phase>

      <goals>
       <goal>jar</goal>
      </goals>
      <configuration>
       <classesDirectory>${project.basedir}/src/main/webapp/WEB-INF/classes/</classesDirectory>
       <excludes>
        <exclude>com/</exclude>
       </excludes>
      </configuration>
     </execution>
    </executions>
   </plugin>

 

maven-assembly-plugin配置:可以打多种包

    </plugin>
     <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-assembly-plugin</artifactId>
       <configuration>
         <descriptors>
           <descriptor>src/main/assembly.xml</descriptor>
         </descriptors>
       </configuration>
       <executions>
         <execution>
           <id>zip-release</id>
           <phase>package</phase>
           <goals>
             <goal>single</goal>
           </goals>
         </execution>
       </executions>
     </plugin>

    

assembly.xml:

 

<assembly  
    xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">  
    
    <formats>  
        <format>zip</format>  
    </formats>  
    <includeBaseDirectory>false</includeBaseDirectory>  
    <fileSets>  
        <fileSet>  
            <directory>${project.basedir}/src/main/webapp/WEB-INF/classes/</directory>  
            <includes>  
                <include>**</include>  
            </includes>  
            <excludes>  
                <exclude>com/</exclude>  
            </excludes>  
            <outputDirectory>/</outputDirectory>  
        </fileSet>  
    </fileSets>  
</assembly> 

 

 Maven 设置默认profile,在profile部分增加 :

<activation>  
    <activeByDefault>true</activeByDefault>  
</activation>

 

Maven 三大生命周期

 

1. clean周期

pre-clean:准备清理   

clean:真正的清理工作   

post-clean:执行清理后的一些后续工作

 

2. default周期

validate:验证 
initialize:初始化配置 
generate-sources:生成源代码编译目录 
process-sources:处理项目主资源文件,复制资源文件到outputclasspath 
generate-resources:生成资源目录 
process-resources:处理资源文件


complie:编译源代码 
process-classes:处理编译后文件 
generate-test-sources:生成测试目录 
process-test-sources:处理项目测试资源文件,复制测试资源文件到outputclasspath 
generate-test-resources:生成测试资源文件 
process-test-resources:处理测试资源文件


test-compile:编译测试代码 
process-test-classes:处理测试代码 
test:单元测试运行测试代码 

prepare-package:打包前的准备 
package:将编译好的代码打包成为jar或者war或者ear等等 
pre-integration-test:准备整体测试 
integration-test:整体测试 
post-integration-test:为整体测试收尾 
verify:验证 
install:安装到本地Maven库 
deploy:将最终包部署到远程Maven仓库

 

3. site周期:

pre-site:准备生成站点 
site:生成站点及文档 
post-site:站点收尾 
site-deploy:将生成的站点发布到服务器上

转自:http://uktar.blog.sohu.com/269421895.html

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值