美文网首页maven
maven---常用插件之shade

maven---常用插件之shade

作者: zlcook | 来源:发表于2017-07-03 16:55 被阅读54次

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命令来运行程序。
<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>

相关文章

网友评论

    本文标题:maven---常用插件之shade

    本文链接:https://www.haomeiwen.com/subject/jehzcxtx.html