Простая сборка Gradle из-за `пакета ... не существует` - PullRequest
0 голосов
/ 12 января 2020

Простой проект для начинающих, использующий внешнюю библиотеку , которую я не могу собрать из-за чего-то базового c Я здесь отсутствует. Спасибо за помощь :

:compileJava/home/pi/workspaces/javamotor/src/main/java/JavaMotor.java:1: error: package com.pi4j.io.gpio does not exist
import com.pi4j.io.gpio.GpioController;
                       ^
/home/pi/workspaces/javamotor/src/main/java/JavaMotor.java:2: error: package com.pi4j.io.gpio does not exist
import com.pi4j.io.gpio.GpioFactory;
                       ^
/home/pi/workspaces/javamotor/src/main/java/JavaMotor.java:3: error: package com.pi4j.io.gpio does not exist
import com.pi4j.io.gpio.GpioPinDigitalOutput;
                       ^
/home/pi/workspaces/javamotor/src/main/java/JavaMotor.java:4: error: package com.pi4j.io.gpio does not exist
import com.pi4j.io.gpio.PinState;
                       ^
/home/pi/workspaces/javamotor/src/main/java/JavaMotor.java:5: error: package com.pi4j.io.gpio does not exist
import com.pi4j.io.gpio.RaspiPin;
                       ^
5 errors
 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 3.107 secs

Я использую Gradle 3.2.1 в Ubuntu. IDE vim и bash.

1 Ответ

1 голос
/ 12 января 2020

Объявленная вами зависимость com.pi4j:pi4j-parent не является типичной зависимостью, которую вы ожидаете. Это родительский POM Maven для проекта Pi4J.

Если вы просмотрите содержимое этой зависимости, вы увидите, что опубликованных артефактов *.jar нет: https://repo1.maven.org/maven2/com/pi4j/pi4j-parent/1.2/

Поскольку опубликованных JAR-артефактов нет, на вашем пути к классам ничего не будет. Что вам нужно сделать, это объявить зависимости, которые вам нужны:

Исходя из вашего импорта, вы захотите pi4j-core пакет. Поэтому объявите его как зависимость:

dependencies {
    // This dependency is used by the application.
    implementation("com.pi4j:pi4j-core:1.2")
}

Конфигурация compile устарела. См. this для получения дополнительной информации.

Этого должно быть достаточно для исправления импорта.

Я вижу, что вы также повторно выделяете Java исходных наборов. В этом нет необходимости, поскольку плагин java уже не для вас. Предлагаем вам ознакомиться с Gradle: https://docs.gradle.org/current/userguide/getting_started.html

Полный пример:

plugins {
    // Apply the application plugin to add support for building a CLI application.
    // The application plugin implicitly applies the Java plugin
    id("application")
}

repositories {
    // Use central for resolving dependencies.
    // You can declare any Maven/Ivy/file repository here.
    mavenCentral()
}

dependencies {
    // This dependency is used by the application.
    implementation("com.pi4j:pi4j-parent:1.2")
}

application {
    // Define the main class for the application.
    mainClassName = "io.mateo.MyApplication"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...