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的图样。

idea中java程序包不存在怎么办_java

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

idea中java程序包不存在怎么办_阿里云_02

该报错意思是:未安装对应的aliyun.odps.udf包或未找到可使用的aliyun.odps.udf包路径。

解决过程:

        1、查看工程maven的pom.xml的properties配置,如图所示

idea中java程序包不存在怎么办_java_03

        2、查看maven仓库下的jar信息

                查看java工程依赖的仓库有无相关udf的jar包。maven的jar路径一般是在C:盘下

                查看maven的配置路径:              

idea中java程序包不存在怎么办_odps_04

         我的maven文件夹地址:C:\Users\username\.m2\repository\

         阿里云的依赖包路径:C:\Users\username\.m2\repository\com\aliyun\odps\odps-sdk-udf

idea中java程序包不存在怎么办_java_05

idea中java程序包不存在怎么办_idea中java程序包不存在怎么办_06

                查看上面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配置 之后重启工程【重启才能生效】。

idea中java程序包不存在怎么办_odps_07

至此 问题处理解决。