解决maven打包缺少依赖class xxx for user defined function to_pinyin failed to load问题

 更新时间:2025年09月12日 09:23:21   作者:hammring  
在使用自定义函数时因依赖缺失导致报错,通过定位Maven打包配置发现缺少依赖包,解决方法是在pom.xml中添加maven-shade-plugin插件,实现依赖打包和类隔离,成功解决依赖加载问题

1. 问题报错

FAILED: ODPS-0130071:[1,8] Semantic analysis exception - class xxx for user defined function xxx  failed to load.
Some dependencies are missing. Detail messages are: net/sourceforge/pinyin4j/format/exception/BadHanyuPinyinOutputFormatCombination

2.问题定位

(1) 打好的jar包解压打开发现确实没有发现依赖,定位问题到maven打jar包显示缺少依赖

根据查找资料发现,maven-shade-plugin提供了两大基本功能:

  • a.将依赖的jar包打包到当前jar包(常规打包是不会将所依赖jar包打进来的);
  • b.对依赖的jar包进行重命名(用于类的隔离);

3.问题解决方法

在pom.xml中添加plugin  java编译插件。

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.1.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <filters>
                                <filter>
                                    <artifact>*:*</artifact>
                                    <!-- 这里必须要填下面这段,否则报错 -->
                                    <excludes>
                                        <exclude>META-INF/*.SF</exclude>
                                        <exclude>META-INF/*.DSA</exclude>
                                        <exclude>META-INF/*.RSA</exclude>
                                    </excludes>
                                </filter>
                            </filters>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <!-- 下面这里要填要运行的类,否则会报错 -->
                                    <mainClass>xxx</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

        </plugins>
</build>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 提升MYSQL查询效率的10个SQL语句优化技巧

    提升MYSQL查询效率的10个SQL语句优化技巧

    MySQL数据库执行效率对程序的执行速度有很大的影响,有效的处理优化数据库是非常有用的。尤其是大量数据需要处理的时候
    2018-03-03
  • mysql installer community 8.0.12.0安装图文教程

    mysql installer community 8.0.12.0安装图文教程

    这篇文章主要为大家详细介绍了mysql installer community 8.0.12.0安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • windows下mysql 8.0.27 安装配置方法图文教程

    windows下mysql 8.0.27 安装配置方法图文教程

    这篇文章主要为大家详细介绍了windows下mysql 8.0.27 安装配置方法图文教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • MySQL中一条查询SQL语句的完整执行流程

    MySQL中一条查询SQL语句的完整执行流程

    通常我们在使用MySQL时,我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在MySQL内部的执行过程,这篇文章主要给大家介绍了关于MySQL中一条查询SQL语句的完整执行流程,需要的朋友可以参考下
    2024-05-05
  • MYSQL administrator 使用

    MYSQL administrator 使用

    Administrator 也许你认为可以不需要这个东西,但我还是要建议你下载并使用MySQL Administrator,它提供图形界面以帮助你管理MySQL数据库,Windows用户可以通过命令提示行运行
    2008-06-06
  • mysql随机抽取一定数量的记录实例讲解

    mysql随机抽取一定数量的记录实例讲解

    在本篇文章里小编给大家整理的是关于mysql随机抽取一定数量的记录实例相关知识点,有需要的朋友们可以学习下。
    2019-09-09
  • MAC下MYSQL5.7.17连接不上的问题及解决办法

    MAC下MYSQL5.7.17连接不上的问题及解决办法

    MAC下MYSQL5.7.17无法连接的问题,下载安装完SQLBench_community 6.3.9后新建MYSQL CONNECTIONS根本连接不上,提示为密码错,什么原因如何解决呢?今天小编给大家解答下
    2017-02-02
  • MySQL 独立索引和联合索引的选择

    MySQL 独立索引和联合索引的选择

    为了提高数据库效率,建索引是家常便饭;那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?本文将详细测试分析下。
    2021-05-05
  • MySQL批量插入遇上唯一索引避免方法

    MySQL批量插入遇上唯一索引避免方法

    以前使用SQL Server进行表分区的时候就碰到很多关于唯一索引的问题,今天我们来了解MySQL唯一索引的一些知识:包括如何创建,如何批量插入,还有一些技巧上SQL,感兴趣的朋友可以了解下
    2013-01-01
  • MAC下MySQL初始密码忘记怎么办

    MAC下MySQL初始密码忘记怎么办

    MySQL初始密码忘记如何解决,这篇文章主要介绍了MAC下MySQL忘记初始密码的解决办法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02

最新评论