2013-05-13 12 views
5
  1. Nel mio repository maven (.m2). c'è un mio jar locale come sub_app-0.1.jar.
  2. Ho la stessa copia di esso in ivy-cache.
  3. Eseguo installazione di maven su sub_app, quindi nuovo file sub_app-0.1.jar creato.
  4. Dopo, eseguo i grails puliti e non ottiene il mio nuovo sub_app-0.1.jar da .m2.
  5. Ma, se rimuovo (elimina) il file sub_app-0.1.jar da ivy-cache ed eseguo i grails puliti, quindi sta ottenendo il nuovo file sub_app-0.1.jar in ivy-cache.Grails - Come rendere grails gli ultimi jar locali dal repository di Maven

  6. Se cambio la versione in sub-app pom e grails pom e grails sta prendendo l'ultima. Installa di nuovo non prendendo.

  7. Ho provato aggiungendo SNAPSHOT a jar sup-app pari. stesso risultato, la prima volta sta prendendo, dopo non.

ie. Grails prende in considerazione solo il nome e la versione di jar in ivy-cache, se ne ha - non ci vuole. se non ci sono - prendendo da .m2.

Ma non considerando la nuova/vecchia costruzione.

Si prega di aiuto per ottenere lo stesso comportamento (fase 5) nel passaggio 4 anche.

risposta

0

AGGIORNATO

Si può provare ad aggiungere cambio = true alla tua dipendenza nel BuildConfig.groovy, come specificato nella Grails Guide

compile ('YOUR_GROUP_ID:YOUR_SUB_AP:0.1') { 
    changing = true 
} 
+0

spiace dirlo, "useOrigin vera" non funziona. Potrebbe per favore suggerirmi in altro modo. – Sun

+0

Ho usato anche -SNAPSHOT, anche se non risolto, Qualunque corpo può aiutarmi per favore – Sun

+0

cambiando = true anche non funziona nel mio caso – Sun

0

Non sono sicuro se questo è lo stesso problema come tu, ma io uso Spring Source Tool Suite (STS) con un progetto 'grails' che ha una dipendenza da un progetto 'interfaces' (che contiene solo interfacce, bean, pojos, ecc.).

Se eseguo un'installazione Maven sulle interfacce in STS, quindi maven correttamente aggiornato con l'ultimo jar (io uso '-1.0-SNAPSHOT' come numero di versione).

Se poi eseguo un grails pulito sul mio progetto 'grails' in STS, Grails identifica correttamente la modifica del jar delle interfacce (ho {changing = true} in BuildConfig.groovy), scarica il pom, ma non riesce scarica il jar in quanto non è possibile eliminare il jar dalla ivy-cache. Sembra che STS abbia un handle sulla ivy-cache che impedisce questo.

Come ho ereditato questo progetto da un altro sviluppatore che mi ha informato che era un bug/caratteristica di Grails e/o STS, ho chinato la sua conoscenza e la soluzione questo uno:

  1. pacchetto Maven invece di installare su 'interfacce' quindi copiare l'ultimo jar nella cache di ivy. Sembra che STS mi consenta di sostituire il contenuto del barattolo. Quindi grails clean usa l'ultimo jar di ivy-cache (nessun tentativo di scaricare da Maven).
  2. maven installa su 'interfacce', chiudi STS, elimina jar da ivy-cache, riapri STS, grails clean che scarica l'ultimo jar da maven.

Entrambe le soluzioni alternative come un dolore, quindi sarei interessato se qualcuno ha qualche idea?

+0

Oh, e sto usando grails v2.0.1 e sts v2.9.1.RELEASE se questo aiuta. – shuttsy

+0

Sto usando Grails 2.1.4 e Groovy 2.0.4 e java 1.7, mi sembra che non sia una buona idea - eliminare da ivy-cache ogni volta. – Sun

0

Grails non supporta per le ultime della stessa (gruppo-id, artefatto-id, versione) vaso anche vaso SNAPSHOT anche.

Solutions:

  1. Ogni tempo, eliminare il sub-app-version.jar da edera-cache. oppure
  2. Ogni volta, modifica la versione sul valore successivo (deve essere maggiore del valore corrente) del jar della subapp in pom.xml.

4 Configuration - Reference Documentation

Si prega di leggere:

4.7.6 istantanee e altre dipendenze Modifica

+0

Una modifica suggerita anonima (http://stackoverflow.com/review/suggested-edits/2495777) suggerisce: In Grails 2.3 e versioni successive risolto questo problema, - Fornendo l'opzione di utilizzare solo repository Maven, quindi non sarebbe creare la cartella ivy-cache atleast. –

Problemi correlati