首页 > 其他分享 >电影推荐系统项目实战:项目搭建 ----- 创建项目框架、声明项目中工具版本信息、添加项目依赖

电影推荐系统项目实战:项目搭建 ----- 创建项目框架、声明项目中工具版本信息、添加项目依赖

时间:2022-11-14 17:46:23浏览次数:51  
标签:xml 依赖 项目 版本信息 pom ----- 子项目 声明

1.创建项目框架,确定父/子项目关系:

在MovieRecommendSystem的pom.xml 文件中加入元素 <packaging>pom</packaging>,然后新建一个 maven module 作为子项目,命名为 recommender。 同 样 的 , 再 以 recommender 为 父 项 目 , 在 它 的 pom.xml 中 加 入 <packing>pom</packaging>,然后新建一个 maven module 作为子项目。我们的第一 步是初始化业务数据,所以子项目命名为 DataLoader。 父项目只是为了规范化项目结构,方便依赖管理,本身是不需要代码实现的, 所以 MovieRecommendSystem 和 recommender 下的 src 文件夹都可以删掉。 目前的整体项目框架如下

 

 2.在pom.xml.中声明项目中使用的工具的版本信息

我们整个项目需要用到多个工具,它们的不同版本可能会对程序运行造成影响, 所以应该在最外层的 MovieRecommendSystem 中声明所有子项目共用的版本信息。 在 pom.xml 中加入以下配置:

 

 3.添加项目依赖

首先,对于整个项目而言,应该有同样的日志管理,我们在 MovieRecommendSystem 中引入公有依赖:

 

同样,对于 maven 项目的构建,可以引入公有的插件:

 

 

然后,在 recommender 模块中,我们可以为所有的推荐模块声明 spark 相关依 赖(这里的 dependencyManagement 表示仅声明相关信息,子项目如果依赖需要自行 引入):

 

 

由于各推荐模块都是 scala 代码,还应该引入 scala-maven-plugin 插件,用于 scala 程序的编译。因为插件已经在父项目中声明,所以这里不需要再声明版本和具体配 置:

 

对于具体的 DataLoader 子项目,需要 spark 相关组件,还需要 mongodb、elastic search 的相关依赖,我们在 pom.xml 文件中引入所有依赖(在父项目中已声明的不 需要再加详细信息):

 

标签:xml,依赖,项目,版本信息,pom,-----,子项目,声明
From: https://www.cnblogs.com/slowlydance2me/p/16889738.html

相关文章

  • 11-Go语言进阶-01
    包的使用引入时,用.做前缀,使用时可以省略包名,不建议这么使用可以前缀别名"_"下划线操作,可以执行包里面对应的init函数首字母大写的字段和实体,才能被外部引用init函数......
  • Apple Safari 16.1 - macOS 专属浏览器 (独立安装包下载)
    Safari浏览器16.1forMontery,BigSur请访问原文链接:AppleSafari16.1-macOS专属浏览器(独立安装包下载),查看最新版。原创作品,转载请保留出处。作者主页:www.sys......
  • python-错误和异常-常见错误
    1.无效语法#coding=utf-8;a=“python”;printa;运行结果:a=“python”;^SyntaxError:invalidsyntax分析:“”使用的是中文格式。2.ZeroDivisionEr......
  • C++软件编码规范推荐--命名规则
    1.背景  命名规则对于代码开发和理解很重要,是作为一名合格的设计师具备的良好代码习惯。2.命名规则2.1匈牙利命名法  基本原则:变量名=属性+类型+对象描述......
  • 解决node16版本在启动项目时,项目中node-sass和sass-loader版本不兼容的情况
    1、安装node16版本后,需要对项目中的node-sass和sass-loader进行升级,否则会报如下错误Error:NodeSassdoesnotyetsupportyourcurrentenvironment:Windows64-bit......
  • 运行EasyCVR程序时,提示“缺少api-ms-win-crt-stdio-|1-1-0.dll”该如何解决?
    EasyCVR视频融合云服务支持海量视频汇聚与管理、处理、分发等视频能力。平台可在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管......
  • 新报表项目架构
    前端:Reactumijs后端springCloudxxljobXXL开源社区|项目(xuxueli.com)MyBatisPluspagehelper 帆软报表springsecurityfastjsonmeixuesong  GithubPOIE......
  • 2022-找工准备-面经积累
    请使用Python实现对数据重复文本的去除,数据是dict的形式,key总计N个,value是字符串,对value中重复的(完全重叠10个字以上)内容进行识别,保留第一次出现该重复文本的内容,去除掉......
  • spring-boot-starter-webflux
    webflux:反应式编程reactor的产物,采用发布订阅模式,引入netty的nio,比较适合IO密集型应用。因普遍应用使用的DB链接是IO阻塞型,因此在一般应用中无法体现它的优势。redis和m......
  • IEEE-754浮点数标准与JavaScript中的number
    1、概述如何使用8个字节表示特定的数字(整数或小数),其中要满足精度足够高,和表示的数字尽可能的大。聪明的你肯定想到使用科学计数法来表示,其中64位中,需要包含确定正负的符号......