前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >maven打瘦包,且只打入部分想打入的依赖瘦包

maven打瘦包,且只打入部分想打入的依赖瘦包

原创
作者头像
刘大猫
修改2024-11-13 23:07:00
60
修改2024-11-13 23:07:00
举报
文章被收录于专栏:Spring及SpringBoot相关

@TOC

说明区别:

  • 瘦包:直接打包代码和环境变量,不打包任何依赖包。
  • 胖包:将maven项目中的所有代码、环境变量、依赖包和项目打为一个包 。

↓下面说明使用流程

代码语言:java
复制
第一步:<dependency>标签设置<scope>provided</scope>
第二步:设置<build>的<plugin>使用<artifactId>maven-compiler-plugin</artifactId>和<artifactId>maven-assembly-plugin</artifactId>

举例说明:

代码语言:java
复制
<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>3.0.0</version>
    <scope>provided</scope>
</dependency>
代码语言:java
复制
<build>
        <plugins>
            <plugin>
                <!-- 指定maven编译的jdk版本,如果不指定,maven3默认用jdk 1.5 maven2默认用jdk1.3 -->
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <!-- 一般而言,target与source是保持一致的,但是,有时候为了让程序能在其他版本的jdk中运行(对于低版本目标jdk,源代码中不能使用低版本jdk中不支持的语法),会存在target不同于source的情况 -->
                    <!-- 源代码使用的JDK版本 -->
                    <source>1.8</source>
                    <!-- 需要生成的目标class文件的编译版本 -->
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.5.5</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>Test2</mainClass><!--这里改成自己的主类相对位置-->
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>scala-maven-plugin</artifactId>
                <version>3.2.2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

注意:

==配置这种打指定依赖瘦包的情况后,idea的main方法无法执行,因为依赖被标记provided后运行main不会加载,需要配置如下即可==

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 说明区别:
  • ↓下面说明使用流程
  • 举例说明:
  • 注意:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档