Verpackung WSDL-Kunden in Gläser mit Maven und cxf-codegen-plugin

Ich habe ein maven Projekt, dass Sie verbrauchen eine Reihe von webservices. Wird die Applikation so verpackt, wie ein KRIEG. So weit die Kunden-code generiert wurde, mit cxf-codegen-plugin im generate-sources phase. Standardmäßig generiert die Quellen befinden sich in target/generated-sources/cxf, und nach compile sind Sie zusammengestellt und vermischt sich mit der Anwendung von Klassen in target/classes. Sowohl die generierte und Anwendung Klassen teilen sich die first-level-Pakete.

Möchte ich jedem der Kunden zu sein, verpackt in eine eigene JAR-innen WEB-INF/lib in der war-Datei. Ich fand heraus, über -clientjar, aber es erzeugt nur die .jar Dateien und platziert Sie in target/generated-sources/cxf, und die Gläser am Ende auch in target/classes zusammen mit den kompilierten Klassen, die sinnlos ist.

Ich nehme an, die compile plugin ist irgendwann kompilieren des generierten Quellen in target/classes, und möglicherweise einer weiteren phase ist auch das verschieben der Gläser gibt. Würde es möglich sein, auf Maven zu vermeiden, kompilieren erzeugt Quellen (oder sogar cxf-codegen-plugin generieren keine Quellen überhaupt, nur die Gläser), und kompilieren Sie die Anwendung Klassen gegen die Gläser generiert CXF?

Ich weiß, es wäre möglich, dies zu erreichen, durch die Definition einer multimodule-Projekt mit einer jar-Verpackung Modul für jeden webservice, aber ich möchte vermeiden diese option. Es kann eine große Anzahl von webservices und es wäre nicht geeignet, um weiterhin eine unabhängige module für jeden. Mit -clientjar bin ich schon gezwungen, zu definieren, eine <wsdlOption> für jede WSDL, um die JAR-Dateiname für jede WSDL (es ist nicht möglich, lassen Sie cxf-codegen-plugin Scannen Sie einfach src/main/resources/wsdl oder <wsdlRoot>).

Natürlich die client-JARs erzeugt werden, die außerhalb der Maven und der Installation auf einem lokalen repository und wird definiert als Abhängigkeiten im Projekt, aber ich würde gerne wissen, ob es möglich ist, dies in einem einzigen Maven-build.

Mit Baugruppen würde ich wahrscheinlich, wie legen Sie die JAR-Dateien generiert, die von -clientjar in WEB-INF/lib aber es wäre immer noch ein Problem mit den generierten Klassen innerhalb der KRIEG.

Habe ich nicht einen tiefen Einblick in die Maven-build-lifecycle und seine Möglichkeiten, Anregungen oder Hinweise sind sehr willkommen.

  • Diese Frage zu Fragen scheint für etwas ähnliches.
  • Ich habe am Ende die Schaffung eines aggregator mit den wichtigsten Projekt-und anderen aggregator und parent project, dass seine Kinder wsdl2java zu einer einzigen jar-jeder wsdl im Kinder-Ordner. Nicht genau, was ich wollte, funktioniert aber (beinhaltet das schreiben einer dummy - pom.xml Datei angeben Artefakt-name und Gruppen-id und hinzufügen, um die <modules> von den Eltern für jeden neuen WS-client hinzufügen).
  • Warum nimmst du nicht die Lösung posten als Antwort, sondern als Kommentar?
  • Tolle Antwort. Von Ihnen positiv bewertet werden.
InformationsquelleAutor Xavi López | 2014-09-03
Schreibe einen Kommentar