2017-02-04 4 views
0

Ich möchte eine statische Bibliothek als Jar erstellen, damit sie in mein Projekt eingefügt werden kann (ohne sie in unserem Projekt kompilieren zu müssen).Externe statische Bibliothek im IntelliJ Java-Projekt hinzugefügt, die Gradle nicht sehen kann

cmake -DBUILD_SHARED_LIBS=OFF .. 
build -j8 

In IntelliJ, verweisen ich die .jar-Datei als Abhängigkeit:

ich eine statische Bibliothek (mit Java und Ant Referenzen gültig) gebaut ProjectStructure> Module> Nebengebiete> hinzufügen Jar (scope = kompilieren)

Die Datei wird wie erwartet in externen Bibliotheken angezeigt. Code-Vervollständigung funktioniert, z.B. import org.opencv.core.Core; wird gefunden.

Ich habe festgestellt, dass im Gegensatz zu anderen externen Bibliotheken, diese kein "Gradle:" Präfix hat.

Wenn ich bauen, bekomme ich einen Fehler:

/Users/tj/Documents/projects/myProject/src/main/java/edu/wpi/cscore/CameraServerJNI.java:17: 
error: package org.opencv does not exist 
import org.opencv.core; 

Habe ich einen Schritt? External Libraries

build.gradle: enter image description here

+0

Warum sollte es ein Großbuchstabenpräfix haben? Hast du es in der Datei "galldle build" hinzugefügt? –

+0

Die build.gradle-Datei wurde bereitgestellt, und ich sehe nicht, wie die 3 externen Bibliotheken in der Datei referenziert werden. Ich habe eine neue externe Bibliothek (opencv) hinzugefügt und nicht erwartet, dass ich sie zu build.gradle hinzufügen muss, da die anderen zu funktionieren scheinen. Siehe Screenshot oben. – torpedo51

Antwort

1

Doing so wie du (ProjectStructure> Module> Nebengebiete> hinzufügen Jar) ist nicht die richtige Art und Weise Bibliotheken in das Gradle oder Maven Projekt hinzuzufügen. Alle Bibliotheken des Projekts sollten in diesem Fall in der Build-Datei angegeben werden, und Intellij Idea wird sie automatisch entdecken und in eine eigene Projektbeschreibung aufnehmen.

+0

Die Datei "gradle.build" wurde bereitgestellt (siehe obigen Screenshot). Die externen Bibliotheken mit dem Gradle: -Präfix scheinen in dieser Datei nicht referenziert zu sein. Aus diesem Grund habe ich nicht erwartet, diese Datei so zu bearbeiten, dass sie meine externe Bibliothek enthält. – torpedo51

+0

Es gibt auch so etwas in IDEA als Auto-Import von Gradle/Maven-Bibliotheken. Hast du es eingeschaltet? – Andremoniy

+0

Ich war mir dieser Funktion nicht bewusst und dies könnte erklären, warum die neu hinzugefügte Bibliothek nicht automatisch importiert wurde. Ich werde in diesen thx schauen – torpedo51

Verwandte Themen