2012-03-23 11 views
6

Ho quasi zero conoscenza di Maven/Ivy ma so che queste tecnologie sono alla base della capacità di SBT di scaricare e gestire automaticamente le librerie.Come impostare un repository proxy locale per SBT?

Quando stavo provando a generare un progetto IntelliJ Idea da SBT esso (Idea o il plug-in generatore) non è riuscito a trovare le librerie memorizzate nella cache comune di Ivy 2. Ho risolto il problema impostando il progetto SBT per utilizzare il vecchio schema che memorizza le librerie scaricate nella directory del progetto. Un altro mio progetto usa la vecchia versione SBT che fa questo in modo predefinito. In entrambi i casi, utilizzo il comando clean per rimuovere i file binari della libreria prima di eseguire il backup e update dopo aver nuovamente scaricato tutte le librerie. Il che significa che ho scaricato gli stessi file di libreria molte volte.

La domanda è come impostare un repository locale per memorizzare nella cache le librerie in modo che l'aggiornamento SBT scarichi le librerie dalla cache locale, se disponibile? Sarebbe bello usare la directory esistente ~/.ivy2/cache per la cache, se possibile.

Tendo a credere che questo sia probabilmente abbastanza semplice quando si ha almeno una conoscenza base di Ivy 2.

risposta

3

Ivan, questo può aiutare.

sbt 
> deliver-local 
[info] delivering ivy file to /.../target/scala-2.9.1/ivy-1.0.xml 

Quindi, è necessario trovare IntelliJ passi equivalenti, ma in Eclipse si configura il percorso di generazione con una libreria aggiuntiva, "IvyDE Managed Dipendenze" offerti dal IvyDE plugin

1) browse to the target/scala-version/ivy-1.0.xml file 
2) select desired configurations (compile, runtime, test, provided, etc.) 

Ora avere una rappresentazione dell'edera della configurazione di sbt.

Questo funziona meravigliosamente con una fastidiosa eccezione: su "sbt clean", il file di configurazione di edera viene spazzato via e devi ripetere quanto sopra. Il progetto Eclipse pulito preserva la configurazione di edera, btw.

Mantenere aggiornato se questo approccio può essere applicato a IntelliJ

+0

Grazie, controllerò. – Ivan

Problemi correlati