美文网首页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