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>