2012-05-24 5 views
11

Genero origini Java da un file wsdl. Queste fonti non sono sotto controllo di versione (ma wsdl è). Utilizziamo il plugin cxf-codegen in Maven e le classi generate sono generate in <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>.definire la directory di origine aggiuntiva in Maven

Questo funziona bene in Maven.

Devo definire questa directory come directory di origine delle aggiunte in Idea Intelij. (target è normalmente escluso).

Ma ogni volta che reimportiamo il progetto Maven in InteliJ Idea (a causa di cambiamenti di pom), devo modificare manualmente la struttura del progetto in Idea e ridefinire la directory dei sorgenti di aggiunta.

C'è un modo in cui posso definire questa directory sorgente adizionale in Maven, quindi Idea lo preleva su ricarica o dire a Idea di non dimenticare la definizione di directory manuale sorgente?

+2

Hai controllato http://wiki.jetbrains.net/intellij/Maven_FAQ? – CrazyCoder

+0

@CrazyCoder Dovrebbe aver prima controllato la loro wiki. "generate-fonti" ha fatto il trucco. Grazie. Puoi postarlo come risposta, quindi posso accettarlo? – bert

risposta

11

Questo caso è descritto nella IntelliJ IDEA Maven FAQ, sezione Fonti generato:

Specificare la directory di root di origine quando si reimportare un progetto.
È possibile selezionare una delle seguenti opzioni:

  • rilevare automaticamente Questa è un'opzione di default. Quando si seleziona questa opzione, IntelliJ IDEA rileva automaticamente la posizione delle sorgenti generate. IntelliJ IDEA rileva anche quale directory contrassegnare come root di origine. Tuttavia, IntelliJ IDEA cerca le sorgenti generate solo nelle directory target/generate-sources e target/generate-sources/*.

  • target/generate-sources Questa opzione consente di contrassegnare manualmente la directory come root di origine.

  • sottodirectory di "target/generate-sources" Questa opzione consente di contrassegnare manualmente una sottodirectory come root di origine.

  • Non rilevare Questa opzione consente di saltare il processo di rilevamento.

5

Date un'occhiata alla meta <add-source> build (vedere un esempio here)

Citazione:

<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> 
+3

questo genera le fonti al di fuori della cartella di destinazione e posso creare il progetto. Sfortunatamente, Idea ha ancora bisogno di una definizione manuale di questa cartella aggiuntiva, quindi il mio problema rimane. – bert

0

Si potrebbe definire la directory sorgente (esterna) come dipendenza al modulo. Project Structure -> Modules -> Depenencies. Qui è necessario aggiungere una nuova dipendenza .

+0

grazie. L'idea mantiene questo cambiamento dopo che pom si ricarica. I file Java sono riconosciuti come tali. Sfortunatamente, Idea non risolve i riferimenti di classe ai file in tale directory. Strano, indagherò ancora – bert