我是Maven和Spark的新手,我想和他们两个一起玩。 我在OSx上,所以我都使用brew安装了它们。 在eclipse上,我使用快速向导创建了一个Maven项目,并创建了以下pom.xml
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.and.app</groupId>
<artifactId>myapp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-core</artifactId>
<version>2.4.3</version>
</dependency>
</dependencies>
</project>
而主班是:
package myapp;
import static spark.Spark.*;
public class Driver {
public static void main(String[] args) {
get("/hello", (req, res) -> "Hello World"); }
}
但是出现以下错误:
缺少工件com.sparkjava:spark-core:jar:2.4.3
我认为这是因为brew安装,所以我添加了一行:
<systemPath>\usr\local\Cellar\apache-spark\2.4.3\libexec\jars</systemPath>
作为火花罐的显式路径,紧接在pom.xml中的version标记之后 到目前为止,我还没有成功。
我在做什么错了?
P.S .:我验证了Maven和Spark的安装。
答案 0 :(得分:2)
Maven正在自动从网络获取依赖关系。如果要使用本地安装的jar,则必须将它们添加到本地maven存储库中:
https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html
但是我想知道:您还可以告诉Maven自己获取spark依赖项。它似乎适用于Maven用户: https://mvnrepository.com/artifact/org.apache.spark/spark-core 因此,依存关系应为:
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>2.4.3</version>
</dependency>
答案 1 :(得分:1)
检查system
范围的定义:
此作用域与提供的作用域相似,只是您必须提供显式包含它的JAR。该工件始终可用,并且不会在存储库中查找。
这意味着您应该为代码的每个启动提供jar的路径。以及用于编译(由于导入)。更改范围或为编译器显式提供jar的路径。