簡體   English   中英

由於`package ...不存在`,簡單的gradle構建失敗

[英]Simple gradle build failing due to `package ... does not exist`

一個使用外部庫的簡單初學者項目,由於我在這里缺少一些基本的東西,我無法構建它。 謝謝你的幫助。

構建.gradle

plugins {
  id 'java'
  id 'maven'
}

repositories {
  mavenCentral()
}

dependencies {
  compile 'com.pi4j:pi4j-parent:1.2'
}

sourceSets {
  main {
    java {
      srcDir 'src'
    }
  }
  test {
    java {
      srcDir 'test'
    }
  }
}

./src/main/java/JavaMotor.java我有導入語句:

import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinDigitalOutput;
import com.pi4j.io.gpio.PinState;
import com.pi4j.io.gpio.RaspiPin;

所有這些都在gradle build上失敗:

: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

我在 Ubuntu 上運行 Gradle 3.2.1。 IDE 是 vim 和 bash。

您聲明的com.pi4j:pi4j-parent依賴項不是您期望的典型依賴項。 它是 Pi4J 項目的父級 Maven POM。

如果查看此依賴項的內容,可以看到沒有發布的*.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配置。 有關更多信息,請參閱內容。

這應該足以修復您的進口。

我看到您也在重新聲明 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"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM