2015-04-30 11 views
5

Attualmente sto usando JavaCC (con il plugin gradle JavaCC da here) per generare parte del mio codice sorgente. Il resto del progetto dipende da quel codice. Se importare il progetto in IDEA o pulire il progetto, otterrò degli errori perché le classi non vengono trovate. Tuttavia, la costruzione del progetto funziona.Come integrare le sorgenti generate in IntelliJ IDEA quando si utilizza Gradle?

È possibile modificare il file gradle, in modo che IntelliJ (e forse anche altri editor) sappiano generare queste fonti prima di analizzare il codice?

Il codice generato viene salvato in src/gen/java/ e la posizione del codice generato viene reso noto tramite:

sourceSets { 
    gen { 
     java { 
      srcDir 'src/gen/java' 
     } 
    } 
} 

Dal IntelliJ sta costruendo il progetto ho pensato che il modo più semplice sarebbe avere stato quello di fare:

compileJava.dependsOn <generateSourcesTask> 

Ma aggiungendo che al file Gradle non ha un effetto (probabilmente perché il plugin JavaCC sta facendo questo già).

+0

Devi eseguire un compito per il plugin JavaCC a fare il suo lavoro? In tal caso, non puoi aggiungerlo come una dipendenza per compileJava? – tddmonkey

+0

Per analisi, intendi eseguire le ispezioni? – fge

+0

@fge Intendo l'ispezione automatica all'apertura di un file java ad esempio – TenPlusFive

risposta

1

Hai provato ad aggiungere dir generati dir al principale? Come questo:

sourceSets { 
    main { 
     java { 
      srcDirs = ["src/main/java", "src/gen/java"] 
     } 
    } 
} 

Funziona per me con:

compileJava.dependsOn('generateSourcesTask') 
+0

qual è il punto di aggiungere un nuovo sourcesSet (generato) in quel caso? –

+1

per rendere intellij idea vederlo –

+0

Ma è una cattiva soluzione per adattare il nostro codice all'IDE. Non dovrebbe essere "intelligente"? :) –

Problemi correlati