posts - 88,comments - 7,views - 22万

正常打包maven pom配置如下

复制代码
<properties>
    <project.build.sourceEncoding>UTF8</project.build.sourceEncoding>
    <hive.version>1.2.1</hive.version>
</properties>

<dependencies>
    <!--添加hive依赖-->
    <dependency>
        <groupId>org.apache.hive</groupId>
        <artifactId>hive-exec</artifactId>
        <version>${hive.version}</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.79</version>
    </dependency>

</dependencies>
<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
复制代码
如上 采用maven package打包的时候,会生成

 

 

俩个文件,其中 第一个 是idea自己打包出来的,不带任何第三方依赖,只有本身项目代码文件。 而第二个是maven插件打出来的,
如果 上面 hive-exec 依赖不加 provided这个属性,那么maven会将这些依赖打到生成的jar包里面,虽然生成的jar包体积变大了
,但是在执行的时候缺提示找不到文件不好使,怀疑是因为目标机器存在hive的环境,所以我们将scope属性设置为provided,这样打包就不会包含了,
但是第三方的比如 fastjson 就不用加了,因为需要将它一起打入到jar包里面,否则会出现class not found问题,并且即使将fastjson的包放到hive目录的lib目录下面,依然会有时候提示找不到class的问题,所以最后测试 最稳妥方法就是将第三方依赖直接打入到jar 中就可以。
 
但是 spark的jar包全部打入进去就没事,不用设置spark相关依赖为provided,具体我也不知道怎么回事,反正以后注意如果目标机器存在相关自带依赖,尽量设置provided
posted on   菜霸  阅读(405)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示