Ich habe ein Maven-Projekt in Eclipse und Maven-Ziele, die Anmerkungsprozessoren ausführen, um Code zu generieren. Der Ausgabeordner für diesen Code lautet target / generate-sources / apt.
Damit Eclipse diesen generierten Code sehen kann, muss ich dem Eclipse-Projekt target / generate-sources / apt als Quellordner hinzufügen.
Dies führt jedoch zu einem Fehler vom Typ "Maven Configuration Problem"
Die Projektkonfiguration ist mit pom.xml nicht aktuell. Führen Sie das Projektkonfigurationsupdate aus
Ich glaube, ich verstehe, warum dies der Fall ist, da Eclipse einen anderen Satz von Quellordnern hat als Maven. Aber ich brauche diesen anderen Satz, da ich Eclipse brauche, um die generierten Quellordner sehen zu können ...
Wenn Sie einen reinen Maven erstellen, werden diese Quellordner von Maven in den Build aufgenommen.
Übrigens habe ich ein Upgrade auf die offizielle Eclipse-Version des Maven Eclipse-Plugins m2e 1.0 durchgeführt - was früher m2eclipse war. Ich würde gerne sehen, ob ich mit dem m2e-Plugin eine Lösung finden kann, bevor ich zur alten m2eclipse-Version zurückkehren muss.
m2e connector for build-helper-maven-plugin
in Eclipsebuild-helper-maven-plugin
mit<version>
angegeben als3.2.0
(die letzten als dem Schreiben), gibt es keine Notwendigkeit Apt M2E Connector zu verwenden. Derzeit wird an Eclipse IDE 2020-06 mit Embedded Maven 3.6.3 in Eclipse gearbeitet, und unsere Probleme mit Quellordnern mit Ausschlüssen (**) wurden behoben, nachdem versucht wurde, die Verzeichnispfade der Quellordner hinzuzufügen. Jetzt haben alle Einschlüsse (** / *. Java) in ihnen.Klicken Sie mit der rechten Maustaste auf die Fehlermeldung:
Wählen Sie in der Problemansicht die Option Schnellkorrektur aus und klicken Sie auf Fertig stellen , um die Standardkonfiguration für das Update-Projekt auszuwählen . Dies behebt es.
quelle
Nach dem Wechsel zu neuen Versionen von m2e / maven / apt ... hatte ich Builderrors aufgrund der duplizierten Dateien, die durch den vom Buildhelper hinzugefügten Buildpfad verursacht wurden. Daher musste ich die "apt-generierten" -Folder aus dem Buildhelper entfernen.
Um das Problem in Eclipse zu beheben, habe ich ein M2E-Plugin geschrieben, um dieses Problem zu beheben. Es fügt die im maven-apt-plugin konfigurierten outputDirectories zum Buildpath des Projekts hinzu.
https://apt-m2e.googlecode.com
quelle
In m2e 1.0 hat sich die Handhabung von Maven-Plugins geändert. Möglicherweise fehlt Ihnen eine bestimmte m2e-Erweiterung für Ihr Plugin zur Codegenerierung. Hier ist die gesamte Dokumentation ich gefunden habe.
Dieser Fehlerbericht kann ebenfalls relevant sein.
quelle
https://bugs.eclipse.org/bugs/show_bug.cgi?id=350081
Anforderung an CXF JIRA (siehe 1 ), Lebenszykluszuordnungen im cxf-codegen-Plugin selbst hinzuzufügen. Dies würde m2e 1.1 erfordern, aber ich glaube, es ist ein besserer Ansatz als das Erstellen von Konnektoren außerhalb des cxf-Projekts, vorausgesetzt, die API für die Lebenszykluszuordnung würde sich weniger häufig ändern als das cxf-codegen-plugin und cxf.
quelle
Sie können auch den im Discovery-Katalog verfügbaren Buildhelper m2e-Connector verwenden. Ich verwende Eclipse 3.7
quelle
Eclipse Java EE IDE für Webentwickler. Version: Juno Service Release 1
perfekt arbeiten.
Aber in Eclipse habe ich den gleichen Fehler in der Asinc-Klasse.
Drücken Sie einfach F5 für das Projekt. Beheben Sie dieses Problem.
quelle
Ich fand, dass dies mit Spring 3.1.1, das auch die Version 3.0.6 enthält, gut funktioniert hat. Nachdem ich die Plugins eingerichtet und in den richtigen Bereich des POM gestellt und die Argline und die Endorseddirs eingefügt hatte, um die Java-Quellen in den Ordner target / generate-sources / cxf zu verschieben, generierte maven die Quellen ok.
....
Wenn sich Ihr wsdl-Ordner in $ {basedir} / src / main / resources befindet, wird er automatisch gefunden
Hoffe das hilft! ~ Wildbill
quelle
Für den Fall, dass Sie das Build-Helfer-Plugin aus irgendeinem Grund nicht auf einfachste Weise verwenden können (wenn auch nicht so bequem und etwas langweilig), habe ich festgestellt, dass ich damit umgehen kann:
mvn install
. Aktualisieren Sie nun das übergeordnete Projekt, indem Sie mit der rechten Maustaste klicken und Maven-> Projekt aktualisieren ... auswählen.Dies funktioniert im Allgemeinen gut für Projekte, die eine semistatische Quelle für die Codegenerierung verwenden, z. B. SOAP-WSDLs (Apache CXF) oder aus einer Datenbank generierten Code (jOOQ). Für APT und anderen AspectJ-ähnlichen Code funktioniert dies nicht so gut, da Sie die Quelle häufig bearbeiten.
quelle
Die Konfiguration des Build Helper Plugins hat bei uns funktioniert.
Beachten Sie jedoch, dass der Zielordner immer der Konfiguration des Plugins entsprechen muss, das Sie für die Annotationsverarbeitung selbst verwenden.
Beispielsweise verwendet das Maven-Prozessor-Plugin standardmäßig den Zielordner $ {project.build.directory} / generate-sources / apt. Wenn Sie ein anderes Ziel für Ihre generierten Quelldateien wünschen, können Sie es wie unten gezeigt über das Tag festlegen.
quelle
Hier ist die Lösung
quelle