2012-05-24 3 views
11

Ich generiere Java-Quellen aus einer WSDL-Datei. Diese Quellen unterliegen nicht der Versionskontrolle (aber die WSDL ist). Wir verwenden das cxf-codegen-plugin in maven und die generierten Klassen werden in <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot> generiert.Definieren Sie zusätzliche Quellverzeichnis in Maven

Dies funktioniert alles gut in Maven.

Ich muss dieses Verzeichnis als Add-Source-Verzeichnis in Intelij Idee definieren. (target ist normalerweise ausgeschlossen).

Aber jedes Mal, wenn ich das Maven-Projekt erneut in InteliJ Idea importiere (wegen Pom-Änderungen), muss ich die Projektstruktur in Idea manuell bearbeiten und das Quellverzeichnis der Addition neu definieren.

Gibt es eine Möglichkeit, wie ich dieses zusätzliche Quellverzeichnis entweder in Maven definieren kann, so dass Idea es beim Reload aufruft, oder Idea nicht die manuelle Quelldirektloodefinition vergessen?

<plugin> 
<groupId>org.codehaus.mojo</groupId> 
<artifactId>build-helper-maven-plugin</artifactId> 
<version>1.4</version> 
<executions> 
    <execution> 
    <id>add-wsdl-source</id> 
    <phase>generate-sources</phase> 
    <goals> 
    <goal>add-source</goal> 
    </goals> 
    <configuration> 
    <sources> 
    <source>${basedir}/src-generated/src</source> 
    </sources> 
    </configuration> 
    <!-- [...] --> 
    </execution> 
</executions> 
</plugin> 
+2

Hast du http://wiki.jetbrains.net/intellij/Maven_FAQ überprüfen? – CrazyCoder

+0

@CrazyCoder Sollte zuerst ihr Wiki überprüft haben. "generated-sources" haben es geschafft. Vielen Dank. Kannst du es als Antwort posten, damit ich es annehmen kann? – bert

Antwort

11

Dieser Fall ist in den IntelliJ IDEA Maven FAQ, beschrieben generierten Quellen Abschnitt:

das Verzeichnis des Quell root angeben, wenn Sie ein Projekt neu importieren.
Sie können eine der folgenden Optionen wählen:

  • Detect automatisch eine Standardoption Dies ist. Wenn Sie diese Option auswählen, erkennt IntelliJ IDEA automatisch den Speicherort der generierten Quellen. IntelliJ IDEA erkennt auch, welches Verzeichnis als Quell-Root markiert werden soll. IntelliJ IDEA sucht jedoch nur in den Verzeichnissen target/generated-sources und target/generated-sources/* nach den generierten Quellen.

  • target/generated-sources Mit dieser Option können Sie das Verzeichnis manuell als Quell-Root markieren.

  • Unterverzeichnisse von "target/generated-sources" Mit dieser Option können Sie ein Unterverzeichnis manuell als Quell-Root markieren.

  • Nicht erkennen Mit dieser Option können Sie den Erkennungsvorgang überspringen.

5

einen Blick auf das Ziel <add-source> build Nehmen

-Zitat (ein Beispiel here sehen). Project Structure -> Modules -> Depenencies. Dort müssen Sie eine neue Abhängigkeit hinzufügen.

+3

dies erzeugt die Quellen außerhalb des Zielordners und ich kann das Projekt erstellen. Leider benötigt Idea noch eine manuelle Definition dieses zusätzlichen Ordners, daher bleibt mein Problem bestehen. – bert

0

Sie könnten die (extern) Quellverzeichnis als Abhängigkeit zu Ihrem Modul definieren:

+0

danke. Die Idee behält diese Änderung nach dem Nachladen bei. Java-Dateien werden als solche erkannt. Leider löst Idea Klassenverweise auf Dateien in einem solchen Verzeichnis nicht auf. Seltsam, ich werde weiter nachforschen – bert