2014-06-12 16 views
8

Ho appena iniziato l'apprendimento gioco Framework 2.3.0 e sto cercando di spostareCome modificare la posizione delle cartelle .activator .sbt .ivy in Play 2.3?

  • .activator
  • .sbt
  • .ivy

cartelle dalla cartella %USERPROFILE% in una cartella personalizzata come C:/learning/playframework/ sul mio Macchina Windows 7 Voglio che siano portatili/non persi durante l'installazione del sistema operativo.

ho modificato il sbt.boot.properties e cambiato il user.home alla posizione personalizzata e superato play.home-activator.bat come parametro.

Anche se .sbt e .ivy cartelle vengono creati nella cartella personalizzata, quando si tenta di creare una nuova applicazione HelloWorld tutte queste cartelle di nuovo ottenere creati nella directory utente %USERPROFILE% e tutti i file vengono scaricati lì. Lo non viene mai creato nella cartella personalizzata e viene sempre creato nella cartella %USERPROFILE%.

Mi sono anche assicurato che non ci fossero spazi nei percorsi.

sbt.boot.properties:

[app] 
    org: com.typesafe.activator 
    name: activator-launcher 
    version: ${activator.version-read(activator.version)[1.2.1]} 
    class: activator.ActivatorLauncher 
    cross-versioned: false 
    components: xsbti 

[repositories] 
    local 
    activator-local: file://${activator.local.repository-${activator.home-${play.home}/.activator}/repository}, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext] 
    maven-central 
    typesafe-releases: http://repo.typesafe.com/typesafe/releases 
    typesafe-ivy-releasez: http://repo.typesafe.com/typesafe/ivy-releases, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext] 

[boot] 
directory: ${sbt.boot.directory-${sbt.global.base-${play.home}/.sbt}/boot/} 
properties: ${activator.boot.properties-${play.home}/.activator/version-${activator.launcher.generation-0}.properties} 

[ivy] 
    ivy-home: ${play.home}/.ivy2 
    checksums: ${sbt.checksums-sha1,md5} 
    override-build-repos: ${sbt.override.build.repos-false} 
    repository-config: ${sbt.repository.config-${sbt.global.base-${play.home}/.sbt}/repositories} 

si prega di avvisare su come configurare l'Attivatore/Play quadro tale che - le 3 directory e il repository vengono creati in una directory personalizzata, dicono C:/learning/playframework/.

+0

Grazie Jacek :) – jayanth

+0

Come fai a * "passato play.home a activator.bat come parametro . "*? –

risposta

4

L'oggetto .activator non viene mai creato nella cartella personalizzata ed è sempre creato nella cartella% USERPROFILE%.

La mia comprensione è che ~/.activator è controllato dallo script di avvio in cui si dovrebbe essere in grado di puntare a una directory personalizzata.

Per ~/.sbt si dovrebbe realmente usare la proprietà sbt.global.base come la vedo usata nel codice sbt stesso.

Se volete vedere sotto il cofano, si potrebbe interrogare per i valori attuali delle home directory di SBT e Ivy con consoleProject di comando (si presuppone hai iniziato activator con activator -Dsbt.global.base=./sbt -Dsbt.ivy.home=./ivy2):

> consoleProject 
[info] Starting scala interpreter... 
[info] 
import sbt._ 
import Keys._ 
import _root_.sbt.plugins.IvyPlugin 
import _root_.sbt.plugins.JvmPlugin 
import _root_.sbt.plugins.CorePlugin 
import _root_.sbt.plugins.JUnitXmlReportPlugin 
import currentState._ 
import extracted._ 
import cpHelpers._ 
Welcome to Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_60). 
Type in expressions to have them evaluated. 
Type :help for more information. 

scala> appConfiguration.eval.provider.scalaProvider.launcher.bootDirectory 
res0: java.io.File = /Users/jacek/sandbox/sbt-launcher/minimal-scala/sbt/boot 

scala> appConfiguration.eval.provider.scalaProvider.launcher.ivyHome 
res1: java.io.File = /Users/jacek/.ivy2 

Iff sei davvero in convincente attivatore per utilizzare sbt.ivy.home, è necessario modificare sbt/sbt.boot.properties in activator-launch-1.2.2.jar. Basta seguire le istruzioni:

  1. Estrarre sbt/sbt.boot.properties fuori activator-launch-1.2.2.jar.

    jar -xvf activator-launch-1.2.2.jar sbt/sbt.boot.properties 
    
  2. Modifica sbt/sbt.boot.properties e sostituire ivy-home sotto [ivy].

    ivy-home: ${sbt.ivy.home-${user.home}/.ivy2} 
    
  3. aggiungere il cambiata sbt/sbt.boot.properties-activator-launch-1.2.2.jar.

    jar -uvf activator-launch-1.2.2.jar sbt/sbt.boot.properties 
    

Con il cambiamento, -Dsbt.ivy.home=./ivy2 funziona bene.

scala> appConfiguration.eval.provider.scalaProvider.launcher.bootDirectory 
res0: java.io.File = /Users/jacek/sandbox/sbt-launcher/minimal-scala/sbt/boot 

scala> appConfiguration.eval.provider.scalaProvider.launcher.ivyHome 
res1: java.io.File = /Users/jacek/sandbox/sbt-launcher/minimal-scala/ivy2 
+0

Dove si trova lo script di avvio in riferimento alla cartella '~/.activator'? Ho provato a cambiare 'activator.bat' ecc ma è ancora creato nella cartella'% USERPROFILE% '. Grazie – clD

2

Basta aggiungere un file di activatorconfig.txt%USERPROFILE%/.activator/ In questo file, inserire il seguente contenuto:

-Dactivator.local.repository=C:\learning\playframework\repository 
-Dactivator.home=C:\learning\playframework\ 
-Dsbt.ivy.home=C:\learning\playframework\repository 
-Duser.home=C:\learning\playframework\ 
-Divy-home=C:\learning\playframework\repository 
Problemi correlati