我正在考虑在Java课程中使用Spark。我的学生不认识Maven,所以我想让他们在没有Maven的情况下安装Spark。 我下载了this jar file并将其添加到我的项目中,但是,我遇到了有关缺少类的运行时错误(例如slf4j)。有没有简单的方法来安装没有Maven的Spark?
答案 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文件集。
从那里,你有几个选择:
CLASSPATH
目录提供给您的学生,并让他们手动设置mvn clean/package/install
[稍微偏离主题]
不可否认,根据可用的时间,我肯定会推荐第三种选择: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的示例项目,告诉他们如何构建和运行项目。