2015-10-30 4 views
7

Ho un progetto Java Maven con la sua solita struttura. È stato generato dal creatore del progetto Spring Boot.Come aggiungo gli script Groovy a un progetto Java con la classica struttura Maven?

Ora voglio aggiungere alcuni script Groovy ad esso, in modo tale che

  1. posso accedere ad alcune delle funzionalità implementate in Java da questi script e
  2. è sufficiente, se posso eseguire quegli script Groovy solo dall'IDE (non ho intenzione di impacchettarli, né di distribuirli).

Sto usando IntelliJ Idea Community Edition.

Cosa devo fare (incluso dove inserire gli script di Groovy) per scrivere ed eseguire uno script Groovy nell'IDE, che può accedere alla mia classe Java com.mycompany.SomeComplexClass che dipende dalle librerie gestite da Maven (codificato in pom.xml)?

risposta

4

Fatto un po 'di repo per questo caso, iniziato con Spring Boot e aggiunto poche cose in modo che il codice di Groovy possa essere eseguito. Inoltre, testato con IDEA Community Edition (versione più recente, utilizzando bundle Maven).

Ci sono due modi per ottenere quello che vuoi:

  1. basta aggiungere una dipendenza alla sezione dipendenze pom.xml - la dipendenza da Groovy

    <!-- added so you can run Groovy scripts from IDEA --> 
    <dependency> 
        <groupId>org.codehaus.groovy</groupId> 
        <artifactId>groovy-all</artifactId> 
        <version>2.3.11</version> 
        <scope>test</scope> 
    </dependency> 
    

E voi dovrebbe essere in grado di creare la configurazione dell'esecuzione per gli script groovy.

  1. Se si desidera loro di essere visti come cartella di origine di prova in IDEA e Maven è necessario aggiungere il plugin accumulo helper-maven-plugin alla sezione pom.xml .

Per testare questo clone questo repo e importarlo in IDEA come progetto Maven.

+1

shouldn' It Be '/ add-test-source /.../ aggiungere-test-source /.../source>src/test/groovy' nel vostro POM per compiere “_I non intendo impacchettarli, né distribuirli_ "? –

+1

Buon punto. Per la parte relativa alla confezione: non è realmente pacchettizzata dal momento che Maven non compila realmente gli script di Groovy anche se l'src/main/groovy viene aggiunto come cartella di origine. Ma può accadere che si verifichi uno strano comportamento quando si esegue l'IDEA, quindi le classi target/contengono anche le classi Groovy compilate in modo che finiscano nell'artefatto finale di Maven se la build Maven viene eseguita dopo l'IDEA Make. Per evitare questo, l'approccio migliore sarebbe aggiungere al test. Inoltre, un altro aspetto positivo è che possiamo modificare l'ambito del manufatto groovy da testare. Ho aggiornato il codice con questo approccio. – MikeMatusiak