maven 打包工具shade与assembly与jar

差异

1. maven-jar-plugin

默认的打包方式,用来打普通的project JAR包;只能打一个jar,这个jar无法包含lib,可以通过maven-dependency-plugin输出依赖

2. assembly

常用打包方式
优点: 能自定义目录结构,也可以打包依赖项

参考 //www.greatytc.com/p/fa7c8db9d9eb

3. maven-shade-plugin

缺点:无法自定义打包目录
优点: 可以梳理依赖,自动替换依赖。用于包冲突解决,但是无法解决一个项目中,有多个版本的问题,这种还需通过classloader解决

   <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.2.1</version>
            <configuration>
                <relocations>
                    <relocation>
                        <!--  替换包无需修改代码,会自动扫描引用做到自动替换                           -->
                        <!-- 待被替换的包                            -->
                        <pattern>cn.hutool</pattern>
                        <!--  替换成的包                           -->
                        <shadedPattern>cn.dslhutool</shadedPattern>
                    </relocation>
                </relocations>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容