it-swarm.com.de

Maven compile: Paket existiert nicht

Ich habe ein (scheinbar) einfaches Maven-Problem, das ich nicht lösen kann. In meinem POM habe ich eine Abhängigkeit von openrdf-sesame wie folgt festgelegt:

<dependency>
     <groupId>org.openrdf.sesame</groupId>
     <artifactId>sesame-runtime</artifactId>
     <version>2.7.2</version>
</dependency>

Das Ausführen des Projekts von Eclipse aus funktioniert gut. Ich kann sogar eine ausführbare JAR-Datei exportieren. Leider kann ich es nicht ordnungsgemäß über Cmd-Line Maven erreichen. Um ein Glas zu erstellen, habe ich Folgendes hinzugefügt pom:

<build>
    <plugins>
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-Assembly-plugin</artifactId>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>foo.bar.Cli</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

Die Kompilierung schlägt mit folgenden Fehlern fehl:

.../PLDReducer.Java:[25,29] package org.openrdf.rio.rdfxml does not exist
.../PLDReducer.Java:[27,33] package org.openrdf.sail.nativerdf does not exist
.../LowPLDReducer.Java:[25,29] package org.openrdf.rio.rdfxml does not exist
.../Cli.Java:[23,33] package org.openrdf.sail.nativerdf does not exist
.../SchemaBuilder.Java:[30,33] package org.openrdf.sail.nativerdf does not exist
.../RepoQuerier.Java:[23,33] package org.openrdf.sail.nativerdf does not exist
.../PLDReducer.Java:[78,44] cannot find symbol

Seltsamerweise scheint Eclipse nicht mehr zu kompilieren, sobald ich das Compile-Plugin zu den Pom hinzugefügt und die Projekteinstellungen aktualisiert habe. Ich habe mein Repository überprüft, und alle Sesam-Dateien befinden sich dort.

mvn --version gibt diese Ausgabe aus:

Apache Maven 2.2.1 (rdebian-8)
Java version: 1.6.0_27
Java home: /usr/lib/jvm/Java-6-openjdk-AMD64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux" version: "3.8.0-25-generic" Arch: "AMD64" Family: "unix"

Ich sehe, dass es auf ein Jre hindeutet, aber mein Googeln zeigte an, dass ich einen anderen Fehler sehen würde, wenn der Compiler selbst nicht gefunden wurde .. _. Ich habe das vollständige POM hier eingefügt irgendeine Hilfe.

Gibt es etwas, was ich vermisse? Ich kann keine Fehler in meinem POM finden. 

25
feob

Sie müssen Ihrem Build die folgende Abhängigkeit hinzufügen:

<dependency>
    <groupId>org.openrdf.sesame</groupId>
    <artifactId>sesame-rio-api</artifactId>
    <version>2.7.2</version>
</dependency>

Darüber hinaus würde ich vorschlagen, einen tieferen Einblick in die Dokumentation über die Verwendung der Bibliothek zu erhalten.

10
khmarbaise

Sie fügen kein <scope>-Tag in Ihre Abhängigkeit ein. Wenn Sie es hinzufügen, ändert sich Ihre Abhängigkeit in etwa wie folgt:

<dependency>
     <groupId>org.openrdf.sesame</groupId>
     <artifactId>sesame-runtime</artifactId>
     <version>2.7.2</version>
     <scope> ... </scope>
</dependency>

Das "scope" -Tag teilt maven mit, zu welchem ​​Zeitpunkt des Builds Ihre Abhängigkeit benötigt wird. Beispiele für die Werte, die eingefügt werden sollen, sind "Test", "Bereitgestellt" oder "Laufzeit" (ohne Anführungszeichen in Ihrem Pom). Ich kenne Ihre Abhängigkeit nicht, daher kann ich Ihnen nicht sagen, welchen Wert Sie wählen sollen. Bitte konsultieren Sie die Maven-Dokumentation und die Dokumentation Ihrer Abhängigkeit.

3
Martijn Dirkse

Nicht sicher, ob eine Datei beschädigt wurde oder was, aber nachdem ich die richtige Pom-Konfiguration bestätigt hatte, konnte ich dieses Problem beheben, indem der Jar aus meinem lokalen m2-Repository gelöscht wurde und Maven gezwungen wurde, es erneut herunterzuladen, als ich die Tests durchführte.

1
eebbesen

das Problem trat bei mir auf, ich löste mich durch Entfernen des Bereichs-Tags und baute erfolgreich auf.

0
Fahd Allebdi