Javac nicht kompiliert Klassen, um Ziel-Ordner
JA, ich habe mvn clean
.
Versucht in Maven 3.1.0, 3.0.3 3.0.4 und
Meine multi-Modul maven-Projekt erstellen (mvn install) schlägt fehl, auf einige module. Die Ursache ist, dass das Letzte Modul gebaut wurde, mit ERFOLG, aber in der Tat die Glas leer ist. Und dann das nächste Modul nicht finden können, die Klassen, die es braucht, um zu sehen.
[INFO] Reactor Summary:
[INFO]
[INFO] myproject ......................................... SUCCESS [0.309s]
[INFO] myproject-service ................................. SUCCESS [0.011s]
[INFO] myproject-service-api ............................ SUCCESS [1.242s]
[INFO] myproject-service-spi ............................ FAILURE [1.422s]
[INFO] myproject-datap-lib-impl .................. SKIPPED
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 19.746s
[INFO] Finished at: Wed Jul 24 17:30:57 EEST 2013
[INFO] Final Memory: 62M/919M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project myproject-service-spi: Compilation failure: Compilation failure:
[ERROR] C:\dev\mything\myproject\trunk-checkout2\service\spi\src\main\java\org\myself\service\spi\validation\fake\AbstractConfigurableFakeDetector.java:[12,55] error: package org.myself.service.validation.fake does not exist
Hier ist die komplette debug-Ausgabe nach der Ausführung mvn -X clean install -amd -Dmaven.test.skip=true > build.log
http://nopaste.info/7f07571993.html
In IntelliJ IDEA, es sieht alles gut aus, die Klasse existiert.
Nicht nur die erzeugten jar-leer ist, auch die Ordner-service/api/target/classes.
Mein pom Datei für die service-api ist sehr einfach, genau wie die anderen, dass die Arbeit:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>myparent</artifactId>
<groupId>my.parent</groupId>
<version>myversion</version>
</parent>
<groupId>myproject.service.api</groupId>
<artifactId>myproject-service-api</artifactId>
<dependencies>
... some local and external dependencies
</dependencies>
<properties>
</properties>
</project>
Kein maven-plugins finden Sie hier.
Ich glaube nicht, ich habe eine zyklische Abhängigkeit, da Maven 3 würde dies erkennt.
UPDATE
Habe ich jetzt verstanden habe ist es so: ein einfaches mvn compile auf das Modul, wird die leere jar gibt mir diese Ausgabe in IntelliJ IDEA:
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building myproject-service-api 4.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ myproject-service-api ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\myproject\trunk-checkout2\service\api\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ myproject-service-api ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 217 source files to C:\myproject\trunk-checkout2\service\api\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.908s
[INFO] Finished at: Wed Jul 24 21:56:49 EEST 2013
[INFO] Final Memory: 20M/232M
[INFO] ------------------------------------------------------------------------
Und rechts nach der Ausführung, dass der Ordner C:\myproject\trunk-checkout2\service\api\target\classes ist leer. Also die 217 Java-Klassen werden erkannt, maven sagt, es stellt Sie zusammen und legt Sie in meinem Zielordner, aber es funktioniert nicht.
Update 2
Habe ich im Vergleich die Ausgabe von mvn -X compile
von einem Modul, das funktioniert im Vergleich zu dieser (denken Sie daran, am Ende alle in BUILD ERFOLG, aber dafür hat man ein leeres Ziel-Ordner). Es gibt einen Unterschied: die in Ermangelung einer listet alle java-Dateien als "Veraltete Quelle erkannt".
[DEBUG] Using compiler 'javac'.
[DEBUG] Source directories: [C:\myproject\trunk-checkout2\service\api\src\main\java]
[DEBUG] Classpath: [C:\myproject\trunk-checkout2\service\api\target\classes
... all the dependency jars
[DEBUG] Output directory: C:\myproject\trunk-checkout2\service\api\target\classes
[DEBUG] CompilerReuseStrategy: reuseCreated
[DEBUG] useIncrementalCompilation enabled
[DEBUG] Stale source detected: C:\dev\myproject\trunk-checkout2\service\api\src\main\java\my\Class.java
... listing all 217 classes
[INFO] Changes detected - recompiling the module!
[DEBUG] Classpath:
[DEBUG] C:\myproject\trunk-checkout2\service\api\target\classes
... all the dependency jars
[DEBUG] Source roots:
[DEBUG] C:\myproject\trunk-checkout2\service\api\src\main\java
[DEBUG] Command line options:
[DEBUG] -d (...) -g -nowarn -target 1.6 -source 1.6 -encoding UTF-8
[DEBUG] incrementalBuildHelper#beforeRebuildExecution
[INFO] Compiling 217 source files to C:\myproject\trunk-checkout2\service\api\target\classes
[DEBUG] incrementalBuildHelper#afterRebuildExecution
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.060s
[INFO] Finished at: Wed Jul 24 23:16:37 EEST 2013
[INFO] Final Memory: 22M/328M
[INFO] ------------------------------------------------------------------------
Ich habe gesehen, dass dieses bug-report https://jira.codehaus.org/browse/MCOMPILER-205 und ich habe package-info.java Dateien in diesem Modul, aber ich habe versucht, eine pre-3-compiler-plugin, Gleiches Ergebnis. Und ich habe versucht, mit einer Anmerkung wie dort beschrieben, kein Glück entweder. Also ich glaube nicht, dass es der gleiche Fall.
Habe ich nicht ein statisches öffentliches void-main, damit dieser bug Problemumgehung für die javac-Kompilierung, um Fehler in maven kann nicht wahr sein.
UPDATE 3
Gibt es einen Abbruch in der javac-ohne Ankündigung - (- verbose eingeschaltet). Nur 1 Klasse funktioniert, alle 217 ausfällt. Also ich denke, ich muss versuchen zu finden, die es bewirkt, etc... werden wieder buchen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste in deiner log-Ausgabe gibt es mehrere Hinweise über Dinge wie
${version}
welche Sie beheben sollten darüber hinaus gibt es andere Warnungen über doppelte Definitionen von Abhängigkeiten usw.Habe ich ein tiefer Blick in die log-Ausgabe:
gibt mir den Eindruck, dass man mit test Klassen oder möglicherweise Paket-Namen aus dem test-Bereich, die nicht funktioniert, oder Sie vermissen eine Abhängigkeit zu einem anderen Paket.
War die Ursache durch einen bug im javac. Einige gültige syntax könnte es nicht verarbeiten. Das erzeugt dann das leere Glas, und so weiter.