在没有 Maven 的情况下安装 Spark
Installing Spark without Maven
我正在考虑在 Java 课程中使用 Spark。我的学生不知道Maven,所以我想让他们在没有Maven的情况下安装Spark。
我下载了 this jar file 并将其添加到我的项目中,但是,我遇到了 运行 次关于丢失 类 的错误(例如 slf4j)。有没有不用Maven安装Spark的简单方法?
给定这个非常简单的 POM:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.Whosebug.spark</groupId>
<artifactId>hello</artifactId>
<version>0.1-SNAPSHOT</version>
<description>Spark Hello</description>
<inceptionYear>2017</inceptionYear>
<dependencies>
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-core</artifactId>
<version>2.6.0</version>
</dependency>
</dependencies>
</project>
调用 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.Whosebug.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] ------------------------------------------------------------------------
...这基本上为您提供了启动最简单的 Spark 应用程序所需的最少 JAR 文件集。
从那里,你有几个选择:
- 下载整套 JAR 并将其作为
lib/
目录提供给您的学生,并让他们手动设置 CLASSPATH
- 用所有需要的 JAR 的内容重建一个 fat JAR
- 在第一节课中花一些时间向您的学生教授 Maven(或 Gradle)的基础知识
[有点跑题]
诚然,根据可用的时间,我肯定会推荐第三种选择:Maven(或Gradle)和依赖管理在这里停留了一段时间,它看起来是这个行业的必备技能。即使这仅意味着为您的学生提供一个简单的 POM 并向他们介绍 mvn clean/package/install
:)
在使用超过标准库的几乎任何 Java 开发时,与不使用构建工具相比,使用构建工具的痛苦要小得多。如果您希望您的学生在校外生存,我相信您希望他们这样做,那么请在您的教学中包含一个构建工具 material。
我个人会选择 Gradle,因为它可以与 Gradle 包装器一起使用,因此不需要安装。给他们一个构建可执行 jar 的示例项目,并告诉他们如何构建和 运行 项目。
我正在考虑在 Java 课程中使用 Spark。我的学生不知道Maven,所以我想让他们在没有Maven的情况下安装Spark。 我下载了 this jar file 并将其添加到我的项目中,但是,我遇到了 运行 次关于丢失 类 的错误(例如 slf4j)。有没有不用Maven安装Spark的简单方法?
给定这个非常简单的 POM:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.Whosebug.spark</groupId>
<artifactId>hello</artifactId>
<version>0.1-SNAPSHOT</version>
<description>Spark Hello</description>
<inceptionYear>2017</inceptionYear>
<dependencies>
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-core</artifactId>
<version>2.6.0</version>
</dependency>
</dependencies>
</project>
调用 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.Whosebug.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] ------------------------------------------------------------------------
...这基本上为您提供了启动最简单的 Spark 应用程序所需的最少 JAR 文件集。
从那里,你有几个选择:
- 下载整套 JAR 并将其作为
lib/
目录提供给您的学生,并让他们手动设置CLASSPATH
- 用所有需要的 JAR 的内容重建一个 fat JAR
- 在第一节课中花一些时间向您的学生教授 Maven(或 Gradle)的基础知识
[有点跑题]
诚然,根据可用的时间,我肯定会推荐第三种选择:Maven(或Gradle)和依赖管理在这里停留了一段时间,它看起来是这个行业的必备技能。即使这仅意味着为您的学生提供一个简单的 POM 并向他们介绍 mvn clean/package/install
:)
在使用超过标准库的几乎任何 Java 开发时,与不使用构建工具相比,使用构建工具的痛苦要小得多。如果您希望您的学生在校外生存,我相信您希望他们这样做,那么请在您的教学中包含一个构建工具 material。
我个人会选择 Gradle,因为它可以与 Gradle 包装器一起使用,因此不需要安装。给他们一个构建可执行 jar 的示例项目,并告诉他们如何构建和 运行 项目。