Sie müssen lediglich eine Eigenschaftendatei definieren sbt.boot.properties
, mit der Sie:
- Definieren Sie den Speicherort des Efeu-Cache neu (ich brauche das, weil es sonst Teil unseres Roaming-Windows-Profils wäre , dessen Speicherplatz in unserem Shop stark eingeschränkt ist. Siehe Ausgabe 74 ).
- Definieren Sie ein beliebiges anderes Maven-Repo
C: \ HOMEWARE \ apps \ sbt-0.74 \ sbt.boot.properties
[Scala]
Version: 2.7.7
# Klassifikatoren: Quellen, Javadoc
[App]
org: org.scala-tools.sbt
name: sbt
version: read (sbt.version)
Klasse: sbt.xMain
Komponenten: xsbti
Cross-Version: wahr
Klassifikatoren: Quellen, Javadoc
[Repositories]
lokal
my-nexus: http://my.nexus/nexus/content/repositories/scala-tools/, [Organisation] / [Modul] / [Revision] / [Typ] s / [Artefakt] (- [Klassifikator]). [ext]
Maven-lokal
# sbt-db: http://databinder.net/repo/, [Organisation] / [Modul] / [Revision] / [Typ] s / [Artefakt] (- [Klassifikator]). [ext]
# maven-central
# Scala-Tools-Releases
# scala-tools-snapshots
[boot]
Verzeichnis: Projekt / Boot
Eigenschaften: project / build.properties
prompt-create: Projekt existiert nicht, neues Projekt erstellen?
prompt-fill: true
Schnelloption: wahr
[Log]
Level: Debug
[App-Eigenschaften]
Projektname: quick = set (Test), new = Eingabeaufforderung (Name) [p], fill = Eingabeaufforderung (Name)
project.organization: new = prompt (Organisation) [org.vonc]
project.version: quick = set (1.0), new = prompt (Version) [1.0], fill = prompt (Version) [1.0]
build.scala.versions: quick = set (2.8.0.RC2), new = prompt (Scala-Version) [2.8.0.RC2], fill = prompt (Scala-Version) [2.8.0.RC2]
sbt.version: quick = set (0.7.4), new = prompt (sbt version) [0.7.4], fill = prompt (sbt version) [0.7.4]
project.scratch: quick = set (true)
project.initialize: quick = set (true), new = set (true)
[Efeu]
Cache-Verzeichnis: C: \ HOMEWARE \ projects \ .ivy2 \ cache
Hinweis: Diese sbt.boot.properties
Datei ist inspiriert von:
Ich habe jede externe Maven-Repository-Definition kommentiert und einen Verweis auf mein eigenes Nexus Maven-Repo hinzugefügt.
Der Launcher kann auf eine der folgenden Arten in aufsteigender Rangfolge konfiguriert werden:
- Ersetzen Sie die
/sbt/sbt.boot.properties
Datei in der jar
.
- Fügen Sie eine Konfigurationsdatei mit dem Namen
sbt.boot.properties
im Klassenpfad ein. Fügen Sie es ohne /sbt
Präfix in den Klassenpfadstamm ein .
- Geben Sie den Speicherort einer alternativen Konfiguration in der Befehlszeile an. Dies kann erfolgen durch:
- Geben Sie entweder den Speicherort als Systemeigenschaft an
sbt.boot.properties
- oder als erstes Argument für den Launcher mit dem Präfix '
@
'.
Die Systemeigenschaft hat eine niedrigere Priorität.
Die Auflösung eines relativen Pfades ist:
- erster Versuch gegen das aktuelle Arbeitsverzeichnis,
- dann gegen das Home-Verzeichnis des Benutzers,
- und dann gegen das Verzeichnis, das das Launcher-Glas enthält.
Ein Fehler wird generiert, wenn keiner dieser Versuche erfolgreich ist.
Definieren Sie einen sbt.bat-Wrapper (um sicherzugehen, dass Sie Ihren angeben sbt.boot.properties
) wie folgt :
C:\HOMEWARE>more C:\HOMEWARE\bin\sbt.BAT
@echo off
set t=
set adp0=
set SBT_DIR=
dir C:\%SBT_DIR
# 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
Und Ihr sbt lädt Artefakte nur herunter von:
- dein Nexus
- Ihr lokales Maven Repo.
Gerade zu Hause mit einem alten Nexus OpenSource 1.6 getestet, den ich ausgeführt habe, 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"
Das gibt:
[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
Wenn ich einen lustigen Wert in der Datei sbt.boot.properties versuche:
C:\Prog\Scala\tests\pp>sbt
Getting Scala 2.9.7 ...
:: problems summary ::
:::: WARNINGS
module not found: org.scala-lang
==== 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
http://localhost:8081/nexus/content/repositories/scala/org/scala-lang/scala-compiler/2.9.7/scala-compiler-2.9.7.jar
Es beschränkt sich also auf die beiden von mir definierten Repos:
[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]
(I kommentiert alles andere: local
, maven-local
, ...)
Wenn ich alle Repositories kommentiere und einen lustigen Wert (2.7.9) für die Scala-Version in die einfüge sbt.boot.properties
, bekomme ich (wie das OP)
C:\Prog\Scala\tests\pp>sbt
Error during sbt execution: No repositories defined.
Wenn ich 2.7.7 setze (während immer noch alle Repos kommentiert sind), wird kein Fehler generiert:
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
Das liegt aber nur daran, dass scala2.8.0 bereits bei meinen vorherigen Versuchen heruntergeladen wurde.
Wenn ich diese Bibliothek aus meinem project/boot
Verzeichnis entferne, wird eine Ausnahme ausgelöst:
[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.
[maven]
Tag durchgeführt und dachte, dass dies mehr über Nexus als über Maven (-2) war. Aber wenn Sie denken, dass es relevant ist, können Sie das Rollback / Update entsprechend durchführen. Ich bin bei diesem möglicherweise zu schnell vorgegangen.