IDEA maven项目报错,找不到或无法找到主类

最近在写UDF,依赖复制的公司的依赖,

<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>2.3.2</version>
<scope>provided</scope>
</dependency>
然后正常的code,在UDF里写了main方法,运行提示我找不到或无法加载主类,根据大佬的指示,发现依赖有个修饰
<scope>provided</scope>
provided,就是这个providede,让我写测试方法可以运行,但是在程序里写main方法却提示找不到类,

增加provided的意思是这个依赖只在编译和测试阶段可以用,运行环境不可用,即打jar包不会将其放进去,即lib目录里不会有它。

总结scope里的字段意思

前言:
1.Maven依赖中scope的默认值是compile
2.scope制定了依赖(第三方jar包)的作用范围
3.作用范围包括,所在项目的测试、编译、运行、打包等生命周期
4.编译和运行还分为 测试代码的编译和运行、非测试代码的编译和运行

scope分类
test 测试范围
测试范围的依赖(第三方jar包),针对测试相关代码的编译和运行,在通常代码的编译和运行时都不需要,只有在有关测试的代码编译和运行测试阶段可用
compile 编译范围
依赖默认范围,即如果依赖没有scope,默认为<scope> compile </scope>,该依赖需要参与当前项目的编译、测试、运行、打包
runtime
不参加编译,但是后期的运行和测试需要
provided
与compile很像,使用它时,jar包运行的JDK或容器会提供它,所以不需要放入jar包,仅用于编译和测试环境
system
与provided很像

被依赖项不会从maven仓库下载,而是从本地系统指定路径下寻找,需要 systemPath 属性


转载于:https://www.cnblogs.com/laphome/p/11323598.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值