Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > 解决maven打包缺少依赖问题

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

作者: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提供了两大基本功能:

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>

总结

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

您可能感兴趣的文章:
阅读全文