2013-06-03 17 views
5

ich kompilieren bin versucht mvn install verwenden, aber ich bin immer diese Fehlermeldung:Fehlgeschlagen Ziel org.apache.maven.plugins auszuführen: Maven-Compiler-Plugin

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project test: Compilation failure: Compilation failure:

pom.xml-Datei:

<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.mycompany</groupId> 
    <artifactId>test</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>test</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

<build> 
    <plugins> 
    <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <configuration> 
     <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
     <archive> 
      <manifest> 
      <mainClass>com.mycompany.test.App</mainClass> 
      </manifest> 
     </archive> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 

    <dependencies> 
    <dependency> 
    <groupId>mysql</groupId> 
    <artifactId>mysql-connector-java</artifactId> 
    <version>5.1.25</version> 
    </dependency> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    </dependencies> 
</project> 

Wie es zu beheben?

+0

'Kompilierungsfehler: Kompilierungsfehler:'. Das ist dein Hinweis. – asgs

+3

Es ist ein Kompilierungsfehler. Bedeutet, dass dein Java-Code nicht kompiliert wird. – Lucas

+0

@Lucas In Netbeans kompiliere ich erfolgreich meinen Code – rustock

Antwort

7

Ihr Problem ist höchstwahrscheinlich die <scope> der Abhängigkeit. Innerhalb der IDE werden alle Bereiche zum Erstellungspfad des Projekts hinzugefügt. Wenn Sie jedoch mvn ausführen, werden dem Klassenpfad für den Befehl javac nur die entsprechenden Bereiche hinzugefügt. Wenn Sie zum Beispiel eine Klasse in /src/main/java hatten, die eine Klasse aus einem Ihrer Abhängigkeiten in den Bereich <scope>test</scope> importiert, könnte die IDE das Projekt erstellen, aber mvn würde in der Ihnen bekannten Weise fehlschlagen.

+0

Was sollte dann in diesem Fall getan werden? Mein Projekt hat plötzlich aufgehört zu bauen, da dies ein Grund ist. –

+0

@ rai.skumar Verwenden Sie geeignete Bereiche für Ihre Abhängigkeiten.Du könntest ' kompilieren' für alles verwenden, was es kompilieren lassen sollte, aber das ist ein _VERY_ armes Design. Es ist besser, einfach die [Dokumentation] (http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope) zu lesen, was die Bereiche bedeuten und welche Änderungen Sie vornehmen müssen. – Lucas

1

traf ich einen ähnlichen Fehler beim Versuch, die aws kinesis Verbraucher-Bibliothek (KCI)

[INFO] --- maven-compiler-plugin:2.0.2:compile (default-compile) @ amazon-kinesis-client --- 
[INFO] Compiling 81 source files to /opt/speedshiftmedia/aws.kcl/1.1.0/target/classes 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 4.822s 
[INFO] Finished at: Tue Jul 22 12:31:39 PDT 2014 
[INFO] Final Memory: 4M/56M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project amazon-kinesis-client: Compilation failure 
[ERROR] Failure executing javac, but could not parse the error: 
[ERROR] javac: invalid target release: 1.7 

Es stellt sich heraus herunterzuladen und zu kompilieren, dass, während ich meine Version von Java 1,6-1,7 aktualisiert hatte, hatte ich nicht aktualisierte Javac von 1.6 zu 1.7.

Dazu habe ich den folgenden Befehl auf ubuntu

sudo update-alternatives --config javac 

Und dann die gewünschte Version an der Eingabeaufforderung wählen.

There are 2 choices for the alternative javac (providing /usr/bin/javac). 



Selection Path           Priority Status 
------------------------------------------------------------ 
* 0   /usr/lib/jvm/java-6-openjdk-amd64/bin/javac 1061  auto mode 
    1   /usr/lib/jvm/java-6-openjdk-amd64/bin/javac 1061  manual mode 
    2   /usr/lib/jvm/java-7-openjdk-amd64/bin/javac 1051  manual mode 

Press enter to keep the current choice[*], or type selection number: 

Ich hoffe, das jemand anderes hilft.

Verwandte Themen