2015-09-01 15 views
15

Sto cercando di trovare documentazione e esempi di codice su come aggiungere un file jar locale/non-maven al mio Grails 3 .x progetto?Come aggiungere una dipendenza jar "non salvata" a un progetto Grails (Grails 3.x)

Ho trovato il thread separato How to add a non-maven jar to grails - ma questo è solo per Grails 2.3, e la struttura del file e la configurazione ha subito una grande revisione in 3.x.

Qualsiasi aiuto e (soprattutto) esempi di codice sarebbe meraviglioso! Il .jar si trova nella directory del progetto locale e ho intenzione di comprimere il file .war per la distribuzione.

Inoltre, una volta aggiunta la dipendenza, dovrei essere in grado di chiamare i suoi metodi dai file di servizio del controller &? o devo includerli anche in quelli?

thx!

+2

è possibile scaricare il barattolo da soli e metterlo nella cartella lib funzionerà perfettamente. Non c'è bisogno di modificare buildconfig. – Abhishek

+2

in Grails 3.0.1 non esiste una cartella 'lib', che era una delle modifiche da 2.x a 3.x. –

risposta

22

Grails 3 utilizza Gradle, quindi non c'è nulla di specifico in Grails riguardo l'inclusione di un jar locale. È facile come aggiungere una dipendenza file al blocco dependencies del tuo file build.gradle.

Per il Gradle documentation on File Dependencies:

Per aggiungere alcuni file come una dipendenza per una configurazione, è sufficiente passare una raccolta di file come dipendenza:

dependencies { 

    ... 

    compile files('libs/a.jar', 'libs/b.jar') 
    // or 
    compile fileTree(dir: 'libs', include: '*.jar') 
} 

L'esempio sopra mostra due modi includere i jar esistenti in una directory locale libs/; puoi fare sia/o. I jar possono essere ovunque sul filesystem, assicurati solo di puntare al percorso corretto.

Per utilizzare le classi dalla dipendenza dell'applicazione, le includerai nei servizi, nei controller e in tutte le altre classi come faresti normalmente. Dire libs/a.jar ha una classe org.example.Something, che ci si aggiunge un importazione alla parte superiore della classe Grails in questo modo:

import org.example.Something 
+1

Eccellente !! Grazie mille dpcasady. Una risposta insolitamente completa, anche per SO. –

+0

Sembra non esserci nessuna cartella lib (quella che hai chiamato cartella libs) in Grails 3 per aggiungere file jar, http://docs.grails.org/3.0.x/guide/upgrading.html – Zimm3r

+0

Questo è solo un esempio arbitrario che dimostra diversi modi per puntare a qualsiasi directory sul filesystem, non c'è niente di speciale nel chiamarlo 'libs' o averlo relativo al progetto grails. Puoi creare una directory lì o fare riferimento a qualsiasi altra cartella esistente sul tuo filesystem. – dpcasady

Problemi correlati