2012-06-10 13 views
8

Se si passa: avviso su riflessione in Leiningen (Ver. 2), ricevo avvertimenti non solo per il progetto corrente, ma anche per le dipendenze. (E, per esempio, anche se chiamo "lein help", ad esempio avvertirò su riflessioni in clucy - una dipendenza di leiningen stessa.)Leiningen,: warn-on-reflection. Richiesto per il progetto corrente solo

Poiché questi progetti non rientrano nel mio ambito attuale, voglio una possibilità di limitare il avvisi solo al progetto corrente. È possibile, e come?

risposta

2

La compilazione del namespace Clojure è transitiva. Vedere: Transitive AOT Compilation

soluzione alternativa, checkout Clucy e:

→ lein compile :all 
→ lein install 

in modo che il compilatore Clojure salterà la compilazione di Clucy, perché esistono già le classfiles.

3

Si può semplicemente aggiungere

(set! *warn-on-reflection* true) 

nella parte superiore del file .clj "principale". Subito dopo le dichiarazioni use e require per codice esterno, ma prima delle dichiarazioni require e/o load per il proprio codice.

+0

Questo è difficile in pratica, giusto? Lo metti prima di un modulo 'ns'? O dopo? –

+0

@DavidJames Sfortunatamente è necessario dividere il form 'ns' in reale' ns' per le cose esterne seguito da 'set!' Seguito da un gruppo di richieste 'require' e' use' per le cose interne. – dimagog

Problemi correlati