不使用Maven安装Spark

时间:2017-10-14 17:52:08

标签: spark-java

我正在考虑在Java课程中使用Spark。我的学生不认识Maven,所以我想让他们在没有Maven的情况下安装Spark。 我下载了this jar file并将其添加到我的项目中,但是,我遇到了有关缺少类的运行时错误(例如slf4j)。有没有简单的方法来安装没有Maven的Spark?

2 个答案:

答案 0 :(得分:2)

鉴于这个非常简单的POM:

mvn dependency:tree

致电[INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building hello 0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ hello --- [INFO] com.stackoverflow.spark:hello:jar:0.1-SNAPSHOT [INFO] \- com.sparkjava:spark-core:jar:2.6.0:compile [INFO] +- org.slf4j:slf4j-api:jar:1.7.13:compile [INFO] +- org.eclipse.jetty:jetty-server:jar:9.4.4.v20170414:compile [INFO] | +- javax.servlet:javax.servlet-api:jar:3.1.0:compile [INFO] | +- org.eclipse.jetty:jetty-http:jar:9.4.4.v20170414:compile [INFO] | | \- org.eclipse.jetty:jetty-util:jar:9.4.4.v20170414:compile [INFO] | \- org.eclipse.jetty:jetty-io:jar:9.4.4.v20170414:compile [INFO] +- org.eclipse.jetty:jetty-webapp:jar:9.4.4.v20170414:compile [INFO] | +- org.eclipse.jetty:jetty-xml:jar:9.4.4.v20170414:compile [INFO] | \- org.eclipse.jetty:jetty-servlet:jar:9.4.4.v20170414:compile [INFO] | \- org.eclipse.jetty:jetty-security:jar:9.4.4.v20170414:compile [INFO] +- org.eclipse.jetty.websocket:websocket-server:jar:9.4.4.v20170414:compile [INFO] | +- org.eclipse.jetty.websocket:websocket-common:jar:9.4.4.v20170414:compile [INFO] | \- org.eclipse.jetty.websocket:websocket-client:jar:9.4.4.v20170414:compile [INFO] | \- org.eclipse.jetty:jetty-client:jar:9.4.4.v20170414:compile [INFO] \- org.eclipse.jetty.websocket:websocket-servlet:jar:9.4.4.v20170414:compile [INFO] \- org.eclipse.jetty.websocket:websocket-api:jar:9.4.4.v20170414:compile [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.229 s [INFO] Finished at: 2017-10-14T21:33:25+02:00 [INFO] Final Memory: 12M/212M [INFO] ------------------------------------------------------------------------ 会产生:

lib/

...这基本上为您提供了启动最简单的Spark应用程序所需的最小JAR文件集。

从那里,你有几个选择:

  • 下载整套JAR并将其作为CLASSPATH目录提供给您的学生,并让他们手动设置mvn clean/package/install
  • 使用所有必需JAR的内容重建单个胖JAR
  • 在第一次课程中花一些时间向学生讲授Maven(或Gradle)的基础知识

[稍微偏离主题] 不可否认,根据可用的时间,我肯定会推荐第三种选择:Maven(或Gradle)和依赖管理在这里停留一段时间,它看起来像是这个行业的必备技能。即使它只是意味着为学生提供一个简单的POM并将其介绍给 pg.connect(connectionString, (err, client, done) => { // Handle connection errors if(err) { done(); console.log(err); return res.status(500).json({success: false, data: err}); } // SQL Query > Select Data const query = client.query('SELECT * FROM items ORDER BY id ASC;'); // Stream results back one row at a time query.on('row', (row) => { results.push(row); }); // After all data is returned, close connection and return results query.on('end', () => { done(); return res.json(results); }); }); :)

答案 1 :(得分:0)

使用构建工具与使用构建工具相比,在使用多个标准库进行几乎任何Java开发时都不那么痛苦。如果你想让你的学生在校外生存,我相信你想要他们,那么在你的教材中加入一个构建工具。

我个人会选择Gradle,因为它可以与Gradle包装一起使用,因此无需安装。给他们一个构建可执行jar的示例项目,告诉他们如何构建和运行项目。