maven---常用插件之shade

maven shade

  • 用来创建超级JAR包的插件
  • 理由:一个java程序要想运行必须有main函数,一般一个java程序会有其它依赖包,通过将程序打包成jar形式来运行的话,那么就需要将其所有依赖也打包进来才能够正常运行,否则运行就会因为缺少依赖而失败。shade插件就是用来将程序和所有依赖打包成一个超级(uber) JAR。
  • 只会将compile范围依赖进行打包。
  • 类似的还有assembly插件(打包成组合jar)

案例

  • 使用shade插件在package阶段将项目打包成一个超级jar包,并且配置了mainClass信息,这样就可以直接通过java -jar xxxx.jar来运行程序了。
<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>2.4.3</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <mainClass>com.zlcook.studymvn.helloword.HelloWord</mainClass>
                </transformer>
              </transformers>
            </configuration>
          </execution>
        </executions>
      </plugin>
  • 打包成一个超级Jar包,但是没有配置main函数所在类,所以不可以通过java -jar xxxx.jar命令来运行程序。
<project>
...
<build>
<plugins>
  <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>2.4.3</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
<plugins>
<build>
<project>
    原文作者:zlcook
    原文地址: https://www.jianshu.com/p/1bbb317b55ee
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞