idea的idea导入sbt项目目在下载依赖时候老是带着个版本号,导致下载找不到包

查看 sbt 项目的依赖关系树的教程
作者:用户
本文讲的是查看 sbt 项目的依赖关系树的教程,
sbt 是借助于 ivy 来管理项目依赖, 像 Maven 项目中可以用 dependency:tree 来显示依赖树, 那么对于 sbt 项目该如何查看项目依赖关系呢? 本文提及了三种方式来显示项目依赖, 它们是 Shell 脚
sbt 是借助于 ivy 来管理项目依赖, 像 Maven 项目中可以用 dependency:tree 来显示依赖树, 那么对于 sbt 项目该如何查看项目依赖关系呢? 本文提及了三种方式来显示项目依赖, 它们是 Shell 脚本, 自定义 sbt 任务, 和 sbt-dependency-plugin 方式. 最后一个办法使得我们也能用 dependencyTree 显示出 Maven 的
dependency:tree 效果来, 还有更酷的的.
& dependencyTree
[info] default:test_2.10:0.1-SNAPSHOT [S]
+-ch.qos.logback:logback-classic:1.0.13
+-ch.qos.logback:logback-core:1.0.13
+-org.slf4j:slf4j-api:1.7.5
[success] Total time: 0 s, completed Apr 5, :53 AM
下面是探索的全部过程.
通过 sbt 控制台的 tab
自动完成或用 help .*[Dd]ependenc.* 命令再进一步过滤出与依赖比较接近 sbt 控制台任务
dependencyClasspath
The classpath consisting of internal and external, managed and unmanaged dependencies.
externalDependencyClasspath
The classpath consisting of library dependencies, both managed and unmanaged.
internalDependencyClasspath
The internal (inter-project) classpath.
projectDependencies
Inter-project dependencies.
excludeDependencies
Declares managed dependency exclusions.
dependencyCacheDirectory
The base directory for cached dependencies.
allDependencies
Inter-project and library dependencies.
libraryDependencies
Declares managed dependencies.
dependencyOverrides
Declares managed dependency overrides.
trackInternalDependencies
The level of tracking for the internal (inter-project) dependency.
dependencyPositions
Source positions where the dependencies are defined.
来深入, 我们建立一个简单的项目, 文件目录如下
├── build.sbt
└── lib
└── guava-18.0.jar
build.sbt 文件的内容是
libraryDependencies ++= Seq(
"ch.qos.logback" % "logback-classic" % "1.0.13"
我们来看看 sbt 的
dependencyClasspath, externalDependencyClasspath, 和 internalDependencyClasspath 的输出
& show dependencyClasspath
[info] List(Attributed(/Users/uqiu/test/lib/guava-18.0.jar), Attributed(/Users/uqiu/.sbt/boot/scala-2.10.6/lib/scala-library.jar), Attributed(/Users/uqiu/.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.0.13.jar), Attributed(/Users/uqiu/.ivy2/cache/ch.qos.logback/logback-core/jars/logback-core-1.0.13.jar), Attributed(/Users/uqiu/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.7.5.jar))
[success] Total time: 0 s, completed Apr 4, :57 PM
& show externalDependencyClasspath
[info] List(Attributed(/Users/uqiu/test/lib/guava-18.0.jar), Attributed(/Users/uqiu/.sbt/boot/scala-2.10.6/lib/scala-library.jar), Attributed(/Users/uqiu/.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.0.13.jar), Attributed(/Users/uqiu/.ivy2/cache/ch.qos.logback/logback-core/jars/logback-core-1.0.13.jar), Attributed(/Users/uqiu/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.7.5.jar))
[success] Total time: 0 s, completed Apr 4, :03 PM
& show internalDependencyClasspath
[info] List()
[success] Total time: 0 s, completed Apr 4, :10 PM
这里我们没有定义子项目, 所以 internalDependencyClasspath 为空, dependencyClasspath 和
externalDependencyClasspath 是一样的.
一般来说我们关心的是 externalDependencyClasspath 的内容, 上面显示的是 List[Attribute[String]] 类型的内容, 为了可读性, 可以用 Shell 脚本或自定义 sbt 任务来格式化显示它.
Shell 脚本显示, 在项目目录下创建 dependencies.sh, 内容如下:
#!/bin/bash
echo "Direct dependencies"
sbt 'show all-dependencies' | gawk 'match($0, /List\((.*)\)/, a) {print a[1]}' | tr -d ' ' | tr ',' '\n' | sort -t ':' | \
tr ':' '\t' | expand -t 30
echo -e "\nAll dependencies, including transitive dependencies"
sbt 'show managed-classpath' | tr -d ' ' | tr ',' '\n' | gawk 'match($0, /Attributed\((.*)\)/, a) {print a[1]}' | \
tr -d '()' | sed "s^$HOME/.ivy2/cache/^^g" | sed "s^/jars^^" | \
gawk -F / '{print $1, $3}' | sort | tr ' ' '\t' | expand -t 30
Mac 下虽安装 gawk, 可用命令
brew install gawk 安装, 并用 chmod +x dependencies.sh 加上可执行属性, 完整命令如下:
brew install gawk
chmod +x dependencies.sh
./dependencies.sh
显示结果大致如下:
Direct dependencies
ch.qos.logback
logback-classic
optional(default)
optional(default)
org.scala-lang
scala-compiler
scala-tool-&default
org.scala-lang
scala-library
org.scala-lang
scala-library
scala-tool-&default
All dependencies, including transitive dependencies
ch.qos.logback
logback-classic-1.0.13.jar
ch.qos.logback
logback-core-1.0.13.jar
slf4j-api-1.7.5.jar
自定义 sbt 任务, 在 build.sbt 中加入如下内容:
本文原始链接 http://unmi.cc/show-sbt-dependency-tree/, 来自 隔叶黄莺 Unmi Blog
lazy val versionReport = TaskKey[String]("version-report")
// Add this setting to your project.
versionReport &&= (externalDependencyClasspath in Compile, streams) map {
(cp: Seq[Attributed[File]], streams) =&
val report = cp.map {
attributed =&
attributed.get(Keys.moduleID.key) match {
case Some(moduleId) =& "%40s %20s %10s %10s".format(
moduleId.organization,
moduleId.name,
moduleId.revision,
moduleId.configurations.getOrElse("")
// unmanaged JAR, just
attributed.data.getAbsolutePath
}.mkString("\n")
重新运行 sbt 或 reload 之后执行 versionReport 任务, 输出如下:
& versionReport
[info] /Users/uqiu/test/lib/guava-18.0.jar
org.scala-lang
scala-library
ch.qos.logback
logback-classic
ch.qos.logback
logback-core
这能让我们看到所有的依赖, 但并未显示成树状关系图, 还没有达到本文标题所称的目标, 所以终极办法也是最简单的办法就是不重新发明轮子, 使用现有的插件 /jrudolph/sbt-dependency-graph.
sbt 插件显示依赖树
可以在 ~/.sbt/0.13/plugins/plugins.sbt 或项目中新建 project/plugins.sbt 中加入行
addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.8.2")
这时在 sbt 的控制台下就增加了好多任务,
dependencyTree: Shows an ASCII tree representation of the project's dependencies
dependencyBrowseGraph: Opens a browser window with a visualization of the dependency graph (courtesy of graphlib-dot + dagre-d3).
dependencyGraph: Shows an ASCII graph of the project's dependencies on the sbt console
dependencyList: Shows a flat list of all transitive dependencies on the sbt console (sorted by organization and name)
whatDependsOn &organization& &module& &revision&: Find out what depends on an artifact. Shows a reverse dependency tree for the selected module.
dependencyLicenseInfo: show dependencies grouped by declared license
dependencyStats: Shows a table with each module a row with (transitive) Jar sizes and number of dependencies
dependencyGraphMl: Generates a .graphml file with the project's dependencies to target/dependencies-&config&.graphml. Use e.g. yEd to format the graph to your needs.
dependencyDot: Generates a .dot file with the project's dependencies to target/dependencies-&config&.dot. Use graphviz to render it to your preferred graphic format.
ivyReport: let's ivy generate the resolution report for you project. Use show ivyReport for the filename of the generated report
我比较感兴趣的是 dependencyTree(显示像
dependency:tree 那样) 和 dependencyBrowseGraph(打开浏览器显示一个依赖关系图)
& dependencyTree
[info] default:test_2.10:0.1-SNAPSHOT [S]
+-ch.qos.logback:logback-classic:1.0.13
+-ch.qos.logback:logback-core:1.0.13
+-org.slf4j:slf4j-api:1.7.5
[success] Total time: 0 s, completed Apr 5, :53 AM
或者执行 dependencyBrowseGraph 后打开一个浏览器
还有 dependencyGraph 任务输出为文本图形, dependencyDot 能生成 dot 文件, 等等.
用 sbt-dependency-graph 插件的办法是最强大也是最简单, 而且如果在 ~/.sbt/0.13/plugins/plugins.sbt 加载该插件更可谓是一劳永逸的做法.
以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索cache
sbt添加依赖、sbt 下载依赖、sbt 打包 依赖jar包、build.sbt 添加依赖、sbt依赖,以便于您获取更多的相关知识。
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一
6款热门基础云产品6个月免费体验;2款产品1年体验;1款产品2年体验
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率
开发者常用软件,超百款实用软件一站式提供
云栖社区()为您免费提供相关信息,包括
,所有相关内容均不代表云栖社区的意见!温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
最近几年开始接触gitbub上的开源项目,大多都是sbt构建的,就感觉有必要学一下步骤如下:安装环境1、java2、scala(可以不装)3、sbt4、ideaidea装好后要进行scala插件的安装新建工程选择scala中的sbt&创建工程名&&创建好的工程如下(lib,assembly.sbt &是我后添加的)比较重要的几个是1、/project/plugin.sbt &添加插件的地方(下面会讲)2、assembly.sbt &打包配置(要自己建,下面会讲)3、build.sbt &(设置jar包,scala版本的地方)例子如下&main里的代码都会在运行、打包时编译而test里不会,相当于test和main是两个工程,test主要是用来跑测试用例的添加jar包1、从sbt添加在maven官网上寻找需要的jar包:然后找到sbt链接&添加至build.sbt中此时idea右上角会出现图标,点击refresh projectsbt就会下载这个版本的jar包若没有出现右上角,点击红色灯泡也能进行项目刷新&刷新之后sbt reload项目就能使用新jar包了导入本地jar包&1、在本地目录新建lib2、把jar包复制到此处3、右键add as library即可&打包1.在project/ plugins.sbt中添加addSbtPlugin(“com.eed3si9n” % “sbt-assembly” % “0.11.2”)&&&2、刷新工程3、重启sbt&4、添加打包属性&5、在控制台中输入sbt&assembly&&&&
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'idea中的sbt部署',
blogAbstract:'今天是周四交流日,按照计划我讲一下sbt的用法其实14年就开始用了,但是学习成本太高,就用了idea自带的一些方法创建工程和打包最近几年开始接触gitbub上的开源项目,大多都是sbt构建的,就感觉有必要学一下步骤如下:安装环境1、java2、scala(可以不装)3、sbt4、ideaidea装好后要进行scala插件的安装新建工程选择scala中的sbt',
blogTag:'sbt,scala,idea',
blogUrl:'blog/static/2',
isPublished:1,
istop:false,
modifyTime:9,
publishTime:2,
permalink:'blog/static/2',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}2被浏览483分享邀请回答12 条评论分享收藏感谢收起6311人阅读
scala开发学习(3)
开发环境搭建
已有hadoop yarn 和 spark 集群部署、运行在分布式环境中,程序开发编码在PC上,由于逐渐增多scala编写spark2.0程序,入乡随俗使用sbt和IntelliJ Idea,顺便对PC上的Scala + sbt + maven + IntelliJ Idea一些要注意的开发环境配置细节进行记录,侧重于现在网上比较少总结又可能让人有些困扰的部分,目前这方面总结比较完整的文章好像还比较少(也可能是自己看的不够多),有些内容也是google国外和自己摸索的,在此进行记录,一方面方便跟可能有同样需求的程序猿们讨论交流,一方面给做个备忘记录。
整体上主要是以下几个步骤。
1. Java JDK 安装与配置
2. Scala2.11.8 安装与配置
3. maven 安装与配置设置文件
4. sbt 安装与配置sbt-lauch.jar包
5. 集成开发环境IDE&IntelliJ Idea 安装与配置插件
6. 通过sbt依赖创建 Spark2.0 项目
1.&Java JDK 安装与配置
官网下载对应操作系统的安装包,做好环境变量配置,命令行java 相关命令成功执行,网上很多参考文档,不多叙述。
2.&Scala 安装与配置
官网下载对应操作系统的安装包,做好环境变量配置,命令行scala相关命令成功执行,网上很多参考文档,不多叙述。
3. maven 安装与配置设置文件
maven或sbt等开发管理软件的使用,在开发中能够较为系统的生成开发目录结构,管理依赖关系,帮开发人员节省时间,提高效率,当然具体使用与否还是看个人实际开发情况选择,没有maven或sbt等管理软件也可以照样开发。
官网下载对应操作系统的安装包,解压到自己设定的目录,成功执行mvn相关命令。
(1)由于国内连接默认maven仓库,网络状况和速度是个老大难问题,可以在maven目录下conf/settings.xml文件配置修改&mirrors&&/mirrors&部分,查找并增加国内外的当时仍有效的快速maven仓库镜像,比如阿里云的maven仓库镜像。先备份原有settings.xml文件,再如下修改当前settings.xml。
& & &id&nexus-aliyun&/id&
& & &name&Nexus aliyun&/name&
& & &url&/nexus/content/groups/public&/url&&
& & &mirrorOf&central&/mirrorOf&&
(2)本地下载保存依赖的目录路径,默认是.m2下面(Linux用户家目录里面,Windows C盘用户目录里面),可以改为其他指定目录,修改conf/settings.xml文件,&localRepository&修改为指定路径&/localRepository&,以防在用户目录下被误删或受到其他影响。
(3)这时候没有安装IDE,可以通过mvn命令生成maven项目,修改pom.xml,管理项目依赖包,进行代码编写,编辑器自选。
4. sbt 安装与配置sbt-lauch.jar包
为了进行scala+spark的开发,入乡随俗使用sbt,官网下载对应操作系统的安装包,解压或安装到自己设定的目录,成功执行sbt相关命令。
(1)同样的,sbt国内连接默认仓库,网速老大难,下载过程极其缓慢,测速可低至0-2KB/S,典型小水管,还有可能中途连接被断开,所以同样需要做更改仓库镜像的尝试。
修改的方法有几种不同的方式,考虑到最终调用的是sbt路径下的bin/sbt-launch.jar,这里采用了直接修改sbt-launch.jar的方式。
先复制备份原有sbt-launch.jar文件,再打开当前修改编辑的sbt-launch.jar中的sbt/sbt.boot.properties,这里修改了[repositories]的local部分,&maven-central没有改,添加了几个网上找的镜像源,都加上去了,也不一定是最快的,速度目前在个人可接受范围内。
& aliyun-nexus: /nexus/content/groups/public/ &
& ibiblio-maven: http://maven.ibiblio.org/maven2/
& typesafe-ivy: /typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
& uk-repository: http://uk.maven.org/maven2/
& jboss-repository: http://repository.jboss.org/nexus/content/groups/public/
(2)sbt使用了ivy,默认将依赖包保存在家目录或C盘用户目录.ivy下面,如果觉得默认路径不合适,可以把sbt.boot.properties文件的[boot]和[ivy]目录修改为指定目录,比如ivy-home是cache依赖包路径,打比方可以改为/home/user/.../ivy-home/ &或者 &F:\...\ivy-home\,然后指定路径下生成的cache目录将具体存储sbt项目依赖包。&
(3)使用sbt命令生成项目模板,可以编写build.sbt,进行依赖管理。
5. 集成开发环境IDE&IntelliJ Idea 安装与配置插件
上面的开发环境配置完成,已可以进行项目开发,个人觉得没有结合IDE使用来的方便,scala、java开发IDE选择见仁见智,IntelliJ Idea比较适合本人口味。
官网下载对应操作系统的安装包,对比免费和付费版本功能,免费的community版一般够用了,解压或安装到指定路径。
(1)打开IntelliJ Idea,在弹出的启动界面中,先进行默认的项目配置(注意是default project配置,以后每个生成的当前项目current project都会先采用该默认配置),包括插件安装、参数配置等。打开可见目前安装的版本属于2016.2,截图界面中,选择configure中的settings。
(2) 左侧选择plugins,默认已自带maven插件,在browse repositories输入scala,查找并下载安装scala插件,同样完成sbt插件安装。IDE下载这些插件的作用通常是用于连接IDE和对应的软件,比如上面已装好的scala,sbt,maven,通过插件方便在IDE调用已装软件的命令和功能,有效地进行开发。
(3)插件安装完成后,点击左侧Build, Execution, Deployment,在Build Tools里面分别maven和sbt插件进行设置,确保插件调用的不是idea默认下载的maven和sbt软件,而是上述自己手动安装的比较新的maven和sbt。
maven的设置,首先看到界面右上角,确认是有一行小字“For default project”,表明是做默认项目配置,如果项目生成后,同样此处的配置界面,将是&For current project&,表示只为当前项目做独立设置。然后对界面上maven home目录进行选择,选取上面自己下载的maven目录;设置文件选择maven下的conf/settings.xml,override打勾替换默认的文件;local 仓库位置选择前面设置好的maven本地仓库路径。
由于maven下载默认仓库依赖时,会下载一个模板文件archetype-catalog.xml,网速慢情况下过于耗时,可能导致下载界面卡住停滞,可以在界面的maven--&runner中设置运行参数,在VM Options写上参数:-DarchetypeCatalog=internal,表示用本地的archetype-catalog.xml,跳过自动网络下载卡住的步骤,然后手动http连接web网页,在maven镜像或中央仓库通过下载路径&org\apache\maven\archetype\archetype-catalog\相应版本号\,下载archetype-catalog.xml,放置在本地maven仓库路径的&org\apache\maven\archetype\archetype-catalog\相应版本号\
&的对应目录位置里面。这样maven插件基本设置完了。
类似的,点击sbt插件,在设置界面将sbt软件由idea打包的bundled选项改为custom,选择上面安装sbt软件的已经修改好的bin/sbt-launch.jar。
接下来还需要在设置界面左侧other settings---&SBT中,去掉Use IDE Settings选项,配置使用自己安装的sbt包和参数,包括下方的SBT laucher JAR file,需要明确地选择自己的sbt软件包,sbt插件才能在idea中按照期望正确地工作。
这个时候回到原来启动界面,选择创建生成新项目,maven或sbt项目,或者直接的java、scala项目,通常已经可以正常工作了,过程不做叙述,网上有很多参考。
6. 通过sbt依赖创建Spark2.0项目
首先在创建的sbt项目中,修改build.sbt,下载spark2.0依赖包,scala编写spark程序,生成jar包放到spark2.0研发的分布式集群运行测试。
(1) 在创建新项目界面中,选择scala---&sbt,在生成的界面中设置项目名称和保存位置,程序根目录。
(2)选择finish,sbt插件将自动调用上述本地安装sbt软件,下载默认依赖包,生成sbt项目结构目录,这里第一次创建需要耐心等待一段时间,等待项目依赖包都下好,sbt代码木结构才能生成。
(3)在生成的sbt项目中,编辑build.sbt,在scalaVersion后面添加spark依赖,注意格式要求,每行之间还要空一行。spark依赖有两种编写方式。
一种是不明确指定spark库的版本,在依赖包的组织部分 &org.apache.spark& 后面加两个%号,让sbt自己去仓库源里面根据scala版本匹配,例如
libraryDependencies += &org.apache.spark& %% &spark-core& % &2.0.0& 。
另一种是明确指明spark库版本,依赖包组织部分 &org.apache.spark& 后面只加一个%号,例如
libraryDependencies += &org.apache.spark& % &spark-core_2.11& % &2.0.0&
libraryDependencies += &org.apache.spark& % &spark-mllib_2.11& % &2.0.0&
libraryDependencies += &org.apache.spark& % &spark-streaming_2.11& % &2.0.0&
libraryDependencies += &org.apache.spark& % &spark-sql_2.11& % &2.0.0&
libraryDependencies += &org.apache.spark& % &spark-graphx_2.11& % &2.0.0&
编写好build.sbt,保存刷新,将下载spark依赖,正常情况下等待下载完,依赖添加成功,可以通过spark API编写程序。
但是有时候由于与源仓库的网速太慢等原因,依赖库的下载未必顺利,导致build.sbt文件总是显示unresolved dependencies,就是指下载库没有下载完整,或配置文件没有记录完整, 比如网络慢导致spark的某些包没下下来,也没什么好办法,只能在idea sbt插件窗口继续刷新下载,如果刷新后sbt下载不正常工作,可以将sbt配置的本地下载库路径cache里相关依赖包目录删除,比如org.apache.spark,然后将本地下载库路径下面与cache目录平行的几个生成配置文件删除(做了测试,有时候spark依赖包已全部下载完成,但不知什么原因,这几个配置文件可能没有相应更新,导致idea中sbt插件仍然显示unresolved
dependencies,删除配置文件后再刷新sbt,不再显示错误,添加成功),重新刷新和下载,正常情况下可以完成依赖,build.sbt文件不会报错unresolved dependencies。
如果更换了硬盘或重装了系统,原来Idea仍可使用,如果build.sbt添加库以后依赖解析报错,类似invalid ivy2 cache找不到,可以在Idea的Build下SBT配置 JVM Options,原来的VM Parameters为-XX:MaxPermSize=384M,继续添加-Dsbt.ivy.home=.../ivy-home,-Dsbt.boot.directory=.../sbt-dir/boot,指明cache库所在路径,该路径应与使用的sbt插件中相关路径一致。
(4)接下来可以写个简单的hello spark程序,import spark的一些基础包,试试是否可以正常通过sbt编译和打包,放到集群运行。由于程序很简单,只是打印了sparkcontext的类名,setMaster使用local参数,表示让Spark运行在单机单线程上而不用连接到spark集群,可以直接在idea里面run一下直接查看结果。如果有条件,spark程序开发,建议打包在研发测试集群上运行,分布式程序编写环境和运行环境尽量分开,如果有问题,在运行集群里面去查看日志,对比程序,查找定位问题,不用什么都在IDE里完成,个人认为IDE作用是有利于方便编写代码这个步骤。在研发集群多方面测试通过,再部署到生产环境集群当中。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:8963次
排名:千里之外
原创:10篇
(1)(2)(2)(2)(3)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'

我要回帖

更多关于 idea 项目依赖 的文章

 

随机推荐