Maven не находит установленные Spark libs с brew - PullRequest
1 голос
/ 09 июня 2019

Я новичок в 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. До сих пор у меня не было успеха.

Что я делаю не так?

PS: я проверил установку Maven и Spark.

Ответы [ 2 ]

2 голосов
/ 09 июня 2019

Maven автоматически получает зависимости из сети. Если вы хотите, чтобы он использовал локально установленные файлы jar, вы должны добавить их в локальный репозиторий maven:

https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html

Но мне интересно: вы могли бы также попросить maven получить саму зависимость от искры. Похоже, что доступно для пользователей 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 голос
/ 09 июня 2019

Проверьте определение области действия system:

Эта область действия аналогична предоставленной, за исключением того, что вы должны предоставить JAR, который содержит ее явно.Артефакт всегда доступен и не просматривается в репозитории.

Это означает, что вы должны указать путь к jar для при каждом запуске вашего кода.И для компиляции (из-за импорта).Измените область действия или укажите путь к jar для компилятора в явном виде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...