maven打war包


maven打包

1 . maven打jar包(Spring Framework)

1.1 插件使用

maven-resources-plugin(资源插件),maven-compiler-plugin(编译项目),maven-jar-plugin(将项目打成jar包),maven-assembly-plugin(将所有依赖打成jar包)。使用maven-assembly-plugin容易产生一个错误,就是在多个依赖冲突的时候无法解决。不过使用 maven-shade-plugin 生成一个 uber-jar,可以解决依赖间的冲突,适用于Spring Framework。

配置 maven-shade-plugin

<plugins>  
    <plugin>  
        <groupId>org.apache.maven.plugins</groupId>  
        <artifactId>maven-shade-plugin</artifactId>  
        <version>2.4.1</version>  
        <executions>  
            <execution>  
				<!-- 将goal shade:shade 绑定到 phase package 上,绑定后执行mvn package即可 -->
                <phase>package</phase>  
                <goals>  
                    <goal>shade</goal>  
                </goals>  
                <configuration>  
                    <transformers>  
                        <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">  
                            <mainClass>com.xxg.Main</mainClass>  
                        </transformer>  
                        <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
                            <resource>META-INF/spring.handlers</resource>  
                        </transformer>  
                        <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">  
                            <resource>META-INF/spring.schemas</resource>  
                        </transformer>  
                    </transformers>  
                </configuration>  
            </execution>  
        </executions>  
    </plugin>  
</plugins>  

配置完成后,执行mvn package即可打包。生成的jar文件包含了所有依赖,所以可以直接运行。

<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
      <resource>META-INF/spring.handlers</resource>  
</transformer>  
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">  
      <resource>META-INF/spring.schemas</resource>  
</transformer> 

这里的AppendingTransformer的作用是:在Spring Framework中会将多个依赖打到一个jar中,每个jar都会包含spring.handlers和spring.schemas文件,如果生成一个jar包文件会互相覆盖,运行时就会出现XML schema文件出错。为了避免互相影响,使用AppendingTransformer来对文件内容追加合并.

2 . maven打war包

2.1 插件使用

打war时需要maven-resources-plugin(资源插件),maven-compiler-plugin(编译项目),maven-war-plugin插件

maven-war-plugin配置

<plugin>
     <artifactId>maven-war-plugin</artifactId>
     <version>3.2.0</version>
     <configuration>
          <failOnMissingWebXml>false</failOnMissingWebXml>
     </configuration>
</plugin>

不想打进war包的jar的配置

<build>
<filters>
    <!-- 过滤文件,通常是一个属性文件(名值对的形式) -->
    <filter>src/main/webapp/META-INF/auto-config.properties</filter>
</filters>
<finalName>communitytag</finalName>
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.1-alpha-1</version>
        <configuration>
			<!-- 不想打进war包的xxx.jar的配置 -->
            <warSourceExcludes>*/lib/xxx.jar</warSourceExcludes>
            <webResources>
                <resource>
                    <!-- 元配置文件的目录,相对于pom.xml文件的路径 -->
                    <directory>src/main/webapp/WEB-INF</directory>
                    <!-- 是否过滤文件,也就是是否启动auto-config的功能 -->
                    <filtering>true</filtering>
                    <!-- 目标路径 -->
                    <targetPath>WEB-INF</targetPath>
                </resource>
            </webResources>
        </configuration>
    </plugin>
</plugins>
</build>

3 . idea中maven打war包(多种方式)

单个执行指令先clean->package
在这里插入图片描述

Build Artifacts
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值