Tous vous avez besoin est de définir un fichier de propriété sbt.boot.properties
qui vous permettra:
- redéfinir le lierre emplacement de la cache (j'en ai besoin, car il en irait autrement dans le cadre de notre itinérance profil Windows, ce qui est très limité en espace disque dans notre boutique. Voir La Question 74)
- définir toute autre repo Maven vous voulez
C:\EMPLETTES\apps\sbt-0.74\sbt.de démarrage.propriétés
[scala]
version: 2.7.7
# classificateurs: sources, javadoc
[app]
org: org.scala-outils.sbt
nom: sbt
version: lire(sbt.version)
catégorie: sbt.xMain
composants: xsbti
croix-de version: vrai
les classificateurs: sources, javadoc
[référentiels]
local
mon nexus: http://my.nexus/nexus/content/repositories/scala-tools/, [l'organisation]/[module]/[révision]/[type]s/[artefact](-[classificateur]).[ext]
maven local
# sbt-db: http://databinder.net/repo/, [l'organisation]/[module]/[révision]/[type]s/[artefact](-[classificateur]).[ext]
# maven central
# scala-outils-communiqués
# scala-outils-instantanés
[boot]
répertoire: projet/boot
propriétés: project/build.propriétés
invite-créer: Projet n'existe pas, créez un nouveau projet?
invite-le remplissage: vrai
rapide-option: vrai
[journal]
niveau: debug
[app-propriétés]
projet.nom: rapide=set(test), de nouvelles=prompt(Nom)[p], fill=prompt(Nom)
projet.organisation: nouveau=prompt(Organisation)[org.vonc]
projet.version: rapide=set(1.0), de nouvelles=prompt(Version)[1.0], fill=prompt(Version)[1.0]
construire.scala.versions: rapide=set(2.8.0.RC2), de nouvelles=prompt(Scala version)[2.8.0.RC2], fill=prompt(Scala version)[2.8.0.RC2]
sbt.version: rapide=set(0.7.4), de nouvelles=prompt(sbt version)[0.7.4], fill=prompt(sbt version)[0.7.4]
projet.scratch: rapide=set(vrai)
projet.initialiser: rapide=set(vrai), le nouveau set=(true)
[lierre]
cache-répertoire: C:\HOMEWARE\projects\.ivy2\cache
Remarque: cette sbt.boot.properties
le fichier est inspiré de:
J'ai commenté tout externe repository Maven définition, et d'y ajouter une référence à mon propre Nexus repo Maven.
Le lanceur peut être configuré dans l'une des façons suivantes dans l'ordre croissant de priorité:
- Remplacer l'
/sbt/sbt.boot.properties
le fichier dans l' jar
.
- Mettre un fichier de configuration nommé
sbt.boot.properties
sur le chemin de la classe. Mettre dans le classpath de la racine sans le /sbt
préfixe.
- Spécifier l'emplacement d'un autre configuration sur la ligne de commande. Cela peut être fait par:
- que ce soit en spécifiant l'emplacement que le système de propriété
sbt.boot.properties
- ou comme premier argument pour le lanceur préfixé par '
@
'.
Le système de la propriété a priorité inférieure.
Résolution d'un chemin d'accès relatif est:
- une première tentative contre le répertoire de travail actuel
- puis dans le répertoire home de l'utilisateur
- et puis dans le répertoire contenant le lanceur jar.
Une erreur est générée si aucune de ces tentatives de réussir.
Définir un sbt.chauve-souris (wrapper pour être sûr de préciser votre sbt.boot.properties
) comme:
C:\HOMEWARE>more C:\HOMEWARE\bin\sbt.BAT
@echo off
set t=%~dp0
set adp0=%t:C:\="%"
set SBT_DIR=%adp0%..\apps\sbt-0.74
dir C:\%SBT_DIR%\sbt-launch-0.7.4.jar
# if needed, add your proxy settings
set PROXY_OPTIONS=-Dhttp.proxyHost=my.proxy -Dhttp.proxyPort=80xx -Dhttp.proxyUser=auser -Dhttp.proxyPassword=yyyy
set JAVA_OPTIONS=-XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Xmx512M -cp C:\HOMEWARE\apps\sbt-0.74\sbt-launch-0.7.4
set SBT_BOOT_PROPERTIES=-Dsbt.boot.properties="sbt.boot.properties"
cmd /C C:\HOMEWARE\apps\jdk4eclipse\bin\java.exe %PROXY_OPTIONS% %JAVA_OPTIONS% %SBT_BOOT_PROPERTIES% -jar C:\HOMEWARE\apps\sbt-0.74\sbt-launch-0.7.4.jar %*
Et votre tribunal télécharger des artefacts seulement à partir de:
- votre Nexus
- votre repo Maven local.
Viens de tester à la maison avec un vieux Nexus opensource 1.6 j'ai eu en cours d'exécution, java 1.6, sbt07.4
C:\Prog\Java\jdk1.6.0_18\jre\bin\java -Xmx512M -Dsbt.boot.properties=sbt.boot.properties - jar "c:\Prog\Scala\sbt\sbt-launch-0.7.4.jar"
Ce qui donne:
[success] Build completed successfully.
C:\Prog\Scala\tests\pp>sbt
Getting Scala 2.8.0 ...
downloading http://localhost:8081/nexus/content/repositories/scala/org/scala-lang/scala-compiler/2.8.0/scala-compiler-2.
8.0.jar ...
[SUCCESSFUL ] org.scala-lang#scala-compiler;2.8.0!scala-compiler.jar (311ms)
downloading http://localhost:8081/nexus/content/repositories/scala/org/scala-lang/scala-library/2.8.0/scala-library-2.8.
0.jar ...
[SUCCESSFUL ] org.scala-lang#scala-library;2.8.0!scala-library.jar (185ms)
:: retrieving :: org.scala-tools.sbt#boot-scala
confs: [default]
2 artifacts copied, 0 already retrieved (14484kB/167ms)
[info] Building project test 0.1 against Scala 2.8.0
[info] using sbt.DefaultProject with sbt 0.7.4 and Scala 2.7.7
Si j'essaie un drôle de valeur dans le sbt.de démarrage.fichier de propriétés:
C:\Prog\Scala\tests\pp>sbt
Getting Scala 2.9.7 ...
:: problems summary ::
:::: WARNINGS
module not found: org.scala-lang#scala-compiler;2.9.7
==== nexus: tried
http://localhost:8081/nexus/content/repositories/scala/org/scala-lang/scala-compiler/2.9.7/scala-compiler-2.9.7.pom
-- artifact org.scala-lang#scala-compiler;2.9.7!scala-compiler.jar:
http://localhost:8081/nexus/content/repositories/scala/org/scala-lang/scala-compiler/2.9.7/scala-compiler-2.9.7.jar
Afin de ne pas se limiter aux deux pensions j'ai défini:
[repositories]
nexus: http://localhost:8081/nexus/content/repositories/scala
nexus2: http://localhost:8081/nexus/content/repositories/scala, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]
(J'ai commenté tout le reste: local
, maven-local
, ...)
Si je commente tous les dépôts et mis un drôles de valeur (2.7.9) pour la scala de version dans l' sbt.boot.properties
, je ne reçois (comme l'OP n')
C:\Prog\Scala\tests\pp>sbt
Error during sbt execution: No repositories defined.
Si j'ai mis 2.7.7 (tout en ayant toutes les pensions de commentaire), oui, il ne génère pas une erreur:
C:\Prog\Scala\tests\pp>sbt
[info] Building project test 0.1 against Scala 2.8.0
[info] using sbt.DefaultProject with sbt 0.7.4 and Scala 2.7.7
Mais c'est seulement parce qu'elle avait déjà téléchargé scala2.8.0 lors de mes précédents essais.
Si je supprime cette bibliothèque à partir de mon project/boot
répertoire, puis il va lever une Exception:
[info] using sbt.DefaultProject with sbt 0.7.4 and Scala 2.7.7
> C:\Prog\Scala\tests\pp>sbt
Error during sbt execution: No repositories defined.
at xsbt.boot.Pre$.error(Pre.scala:18)
at xsbt.boot.Update.addResolvers(Update.scala:197)
...
at xsbt.boot.Boot$.main(Boot.scala:15)
at xsbt.boot.Boot.main(Boot.scala)
Error loading project: Error during sbt execution: No repositories defined.