Warum verwendet Eclipse / m2e den PFAD meines Computers nicht, wenn Sie Befehlszeilen-Maven-Tasks ausführen?

803
apennebaker

Mein Projekt verwendet ein Maven-Buildsystem, und der Maven-Build enthält einen Befehlszeilenaufruf thrift, um einige Dateien zu kompilieren.

In bash mvn generate-sourceserfolgreich abgeschlossen.

Wenn ich jedoch m2e verwende Run as... -> generate-sources, zeigt das Eclipse-Konsolenprotokoll einen Fehler bezüglich einer Binärdatei an, die nicht in PATH enthalten ist. Wie kann ich die Vorstellung von m2e / Eclipse vom Benutzer PATH korrigieren?

Verwenden Sie das neueste Eclipse-Programm unter Mac OS X.

0
Keine Lösung, aber "Warum" -> Maven erwartet, vollständig in sich geschlossen zu sein, und das Plugin, das den Aufruf von "Thrift" macht, ist dafür verantwortlich, die ausführbare Datei zu finden oder sie einzubinden. Auch wenn es manchmal unvermeidlich ist, sich auf ein Programm zu verlassen, das sich einfach an der richtigen Stelle des "PATH" befindet, ist in der Welt der Maven eine schlechte Praxis. Darth Android vor 11 Jahren 0
@DarthAndroid 1) Wie sollte die Thrift-Kompilierung in meinen Maven-Build-Prozess integriert werden? 2) Wie gesagt, 'mvn generate-sources' funktioniert in bash. Es ist Eclipse / m2e, das nicht vollständig in die Umgebungsvariable PATH des Benutzers geladen werden kann. apennebaker vor 11 Jahren 0

1 Antwort auf die Frage

0
Paul Sweatte

Hier ist die Begründung:

Warum werden generierte Quellordner nicht zum Klassenpfad hinzugefügt?

Maven-Plugins, die zum Generieren von Quellcode aus Ressourcen oder anderen Quellen verwendet werden, können während des Builds zusätzliche Quellordner im Maven-Projekt registrieren. Normalerweise sind solche Plugins an die Erstellungsphase von Prozessressourcen (oder Prozesstestressourcen) gebunden (z. B. Jaxb-, Modello- oder Xdoclet-Plugins). Das heißt, um diese Quellordner für generierte Quellen zu erhalten, müssen Sie die entsprechende Maven-Erstellungsphase ausführen.

Nicht alle Projekte verwenden generierte Quellen. Daher führt M2Eclipse aus Performancegründen beim Projektimport standardmäßig keine Maven-Ziele aus. Dies kann in den Maven-Einstellungen in „Fenster / Voreinstellungen / Maven / Ziele, die beim Projektimport ausgeführt werden sollen“ geändert werden (z. B. können Sie die Erstellungsphase „Prozessressourcen“ oder bestimmte Plugins in diesem Feld angeben).

Alternativ können Sie die Aktion "Maven / Update Projektkonfiguration" über das Projekt-Popup-Menü ausführen, das so konfiguriert ist, dass "Prozessressourcen" standardmäßig ausgeführt wird und auch auf derselben Einstellungsseite geändert werden kann.

Verweise