2017-12-20 9 views
0

Ich habe ein Xtext-Sprache-Projekt (mit Xtext 2.13/Java8), die einen Code-Generator enthält. Der Generator erzeugt Java-Code, der kompiliert und gegen eine andere Support-Bibliothek ausgeführt werden muss, die ich als ein anderes Plugin in mein Projekt aufgenommen habe. Das Projekt enthält Generator-Junit-Tests, die mit den Generator-Test-Frameworks kompilieren und ausführen. Alles baut und läuft gut in Eclipse. Ich habe einen Maven-Build eingerichtet, der erfolgreich alles erstellt und Parser- und Validierungs-Tests ausführt, aber in den Generatortests fehlschlägt, weil er die Abhängigkeit von meiner Support-Bibliothek nicht auflösen kann. Die Tatsache, dass diese Tests erfolgreich unter Eclipse ausgeführt werden, sagt mir, dass ich die Plug-in-Manifeste korrekt erstellt habe, aber irgendwie fehlen dem Maven-Build diese compile/runt-Abhängigkeiten von der Support-Bibliothek. Was muss ich tun, um den Generatortest so zu konfigurieren, dass Abhängigkeiten in maven enthalten sind? Ich bekomme den gleichen Fehler laufen maven in Eclipse oder auf der Kommandozeile: Der Generator generiert den Code erfolgreich, aber es kompiliert nicht, da der Compiler Abhängigkeiten zu den Support-Klassen nicht auflösen kann.xtext Sprachbibliothek Abhängigkeit und Maven

+0

Verwenden Sie das Xtext Maven Plugin Look hier: https://www.eclipse.org/Xtext/documentation/350_continuous_integration.html für weitere Details ... –

+0

Übrigens, Hinzufügen des Projekts oder Jar für die Support-Bibliothek zum Classpath für die Generatortests (in der Run-Konfiguration für den Junit-Test) scheint keine Wirkung zu haben. – user2000974

+0

Wie baut man die Support-Bibliothek? Dow fügst du es als Abhängigkeit hinzu. Wie testen Sie den Generator –

Antwort

0

Problem erwies sich als ein kleiner Fehler in der Datei build.properties für die Support-Bibliothek. Die bin.includes Einstellungen waren

bin.includes = META-INF 

aber es mußte auch enthalten ‚‘ wie folgt:

bin.includes = META-INF,\ 
    . 

Ich weiß nicht über dich, aber es war wirklich schwer für mich, diese Zeit zu sehen. Nicht sicher, wie es entfernt wurde, aber der Hinweis war, dass die generierten JAR-Dateien keine Klassen enthielten. Maven-Build wird durch die SNAPSHOT-JAR-Dateien aufgelöst, während der Eclipse-Build die Klassen direkt finden kann.