Cannot resolve com.aliyun.odps:odps-sdk-core:X.XX.X错误处理
intellij idea 报错 “java: 程序包com.aliyun.odps.udf不存在” 错误处理
报错前提
1、intelli idea 已安装好maxcompute studio 。
未安装可移步参考推荐的博客:
1.1、IDEA安装MaxCompute Studio的详细步骤
安装好maxcompute studio可以在在创建工程页面看到 maxcompute studio的图样。
2、在步骤1基础上创建好相关实验样例但未成功出现报错;
阿里云实验样例参考:
Intellij IDEA实现Maxcompute UDF自定义函数以周日为一周第一天的周数
学习样例 Weeknum.java 代码
package com.op;
import com.aliyun.odps.udf.UDF;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
public class Weeknum extends UDF {
// ToDO define parameters and return type, e.g:
public String evaluate(Date d) {
// 设置时区
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+8"));
// 周日为一周第一天
calendar.setFirstDayOfWeek(Calendar.SUNDAY);
// 传入参数
calendar.setTime(d);
//
Integer week = calendar.get(Calendar.WEEK_OF_YEAR);
Integer month = calendar.get(Calendar.MONTH);
// 对日期减7天操作
calendar.add(Calendar.DAY_OF_MONTH, -7);
Integer weekLast = calendar.get(Calendar.WEEK_OF_YEAR);
//
if (weekLast > week && month == Calendar.DECEMBER)
week = weekLast + 1;
//
return week.toString();
}
public static void main(String[] args){
Weeknum weeknum = new Weeknum();
Date nowdate = new Date();
String re = weeknum.evaluate(nowdate);
System.out.println(nowdate);
System.out.println(re);
}
}
3、实验样例打包成jar包教程参考【与报错处理无关】;
使用Intellij Idea打包java为可执行jar包
阿里云udf包错误处理排查:
import com.aliyun.odps.udf.UDF;
//未能成功引用udf,提示报错 “java: 程序包com.aliyun.odps.udf不存在”
报错:【已经安装了maxcompute-studio情况下出现】
提示以下报错:
Cannot resolve com.aliyun.odps:odps-sdk-core:0.38.3
该报错意思是:未安装对应的aliyun.odps.udf包或未找到可使用的aliyun.odps.udf包路径。
解决过程:
1、查看工程maven的pom.xml的properties配置,如图所示
2、查看maven仓库下的jar信息
查看java工程依赖的仓库有无相关udf的jar包。maven的jar路径一般是在C:盘下
查看maven的配置路径:
我的maven文件夹地址:C:\Users\username\.m2\repository\
阿里云的依赖包路径:C:\Users\username\.m2\repository\com\aliyun\odps\odps-sdk-udf
查看上面java的依赖包路径情况,在0.38.3目录下无对应的udf的jar包,而在0.31.4-public下有。
因此发现原因:
和java开发中的maven的配置有关 默认生成的maven的依赖version指向高版本,高版本jar未下载成功 没有对应的udf.jar的包,需要替换到已存在版本的jar包路径。
3、修改配置文件pom.xml并重启intelli idea 重启工程:
需要改下 maven的pom.xml里面 version配置 之后重启工程【重启才能生效】。
至此 问题处理解决。