ich von Activator 2.3.x Upgrade auf 2.4.x (und schließlich 2.5.x). Im Rahmen dieser Migration kann ich den Befehl activator eclipse
nicht mehr verwenden, um ein Eclipse-Projekt aus der Play-Anwendung zu generieren.generieren Eclipse-Projekt SBT mit
Ich arbeite in einem Team, von denen einige IntelliJ verwenden. Daher kann ich diese Änderungen nicht für jedes Projekt vornehmen, da dies für die IntelliJ-Benutzer nicht sinnvoll ist und es nicht angemessen wäre, sie mit der Projektquelle zu versionieren.
Ich verfolge these Anweisungen. Hier sind die Schritte für die Migration, die ich bisher gemacht habe:
- Projekt ändern/plugins.sbt 2.4.6 verwenden
- Im Projekt/application.conf ändern
evolutionplugin=disabled
-play.evolutions.enabled=false
- Im Projekt /build.sbt, entfernen
javaEbean
vonlibraryDependencies
- Eclipse-Benutzer
ein. Herunterladen und Installieren von SBT: http://www.scala-sbt.org/
- Auszug zu
b. Erstellen SBT_HOME Umgebungsvariable -SBT_HOME=C:\dev\.sbt\0.13
c. Add zuPATH
-PATH=...;%SBT_HOME%\bin;
d. Erstellen Sie den Ordner "plugins" unter%SBT_HOME%
-C:\dev\.sbt\0.13\plugins
e. Erstellen Sie die Datei plugins.sbt im Plugin-Verzeichnis
-C:\dev\.sbt\0.13\plugins\plugins.sbt
f. Fügen Sie die folgende Zeile zu global plugins.sbt hinzu:
-addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")
g. Bearbeiten Sie%SBT_HOME%\conf\sbtopts
, um das SBT-Plugins-Verzeichnis anzugeben:
--sbt-dir C:/dev/.sbt/0.13/plugins
h. Bearbeiten Sie%SBT_HOME%\conf\sbtopts
, um das SBT-Startverzeichnis anzugeben:
--sbt-boot C:/dev/.sbt/0.13/plugins/boot
i. Erstellen sbteclipse.sbt Datei auf%SBT_HOME%
An dieser Stelle sollte ich in der Lage sein, ein Eclipse-Projekt zu erstellen, aber es kann nicht lösen sbteclipse:
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: com.typesafe.sbteclipse#sbteclipse-plugin;4.0.0: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn] Note: Some unresolved dependencies have extra attributes. Check that these dependencies exist with the requested attributes.
[warn] com.typesafe.sbteclipse:sbteclipse-plugin:4.0.0 (scalaVersion=2.11, sbtVersion=0.13)
[warn]
[warn] Note: Unresolved dependencies path:
[warn] com.typesafe.sbteclipse:sbteclipse-plugin:4.0.0 (scalaVersion=2.11, sbtVersion=0.13) (C:\dev\.sbt\0.13\plugins\plugins.sbt#L2-3)
[warn] +- gateway-api:gateway-api_2.11:1.0-SNAPSHOT
sbt.ResolveException: unresolved dependency: com.typesafe.sbteclipse#sbteclipse-plugin;4.0.0: not found
at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:313)
at sbt.IvyActions$$anonfun$updateEither$1.apply(IvyActions.scala:191)
at sbt.IvyActions$$anonfun$updateEither$1.apply(IvyActions.scala:168)
at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:156)
at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:156)
at sbt.IvySbt$$anonfun$withIvy$1.apply(Ivy.scala:133)
at sbt.IvySbt.sbt$IvySbt$$action$1(Ivy.scala:57)
at sbt.IvySbt$$anon$4.call(Ivy.scala:65)
at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:93)
at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:78)
at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:97)
at xsbt.boot.Using$.withResource(Using.scala:10)
at xsbt.boot.Using$.apply(Using.scala:9)
at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:58)
at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:48)
at xsbt.boot.Locks$.apply0(Locks.scala:31)
at xsbt.boot.Locks$.apply(Locks.scala:28)
at sbt.IvySbt.withDefaultLogger(Ivy.scala:65)
at sbt.IvySbt.withIvy(Ivy.scala:128)
at sbt.IvySbt.withIvy(Ivy.scala:125)
at sbt.IvySbt$Module.withModule(Ivy.scala:156)
at sbt.IvyActions$.updateEither(IvyActions.scala:168)
at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1439)
at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1435)
at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$90.apply(Defaults.scala:1470)
at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$90.apply(Defaults.scala:1468)
at sbt.Tracked$$anonfun$lastOutput$1.apply(Tracked.scala:37)
at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1473)
at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1467)
at sbt.Tracked$$anonfun$inputChanged$1.apply(Tracked.scala:60)
at sbt.Classpaths$.cachedUpdate(Defaults.scala:1490)
at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1417)
at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1369)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
at sbt.std.Transform$$anon$4.work(System.scala:63)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.Execute.work(Execute.scala:237)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[error] (*:update) sbt.ResolveException: unresolved dependency: com.typesafe.sbteclipse#sbteclipse-plugin;4.0.0: not found
[error] Could not create Eclipse project files:
[error] Error evaluating task 'scalacOptions': error
[error] Error evaluating task 'externalDependencyClasspath': error
So können Sie sich von den Schritten siehe oben skizzierte Ich versuche, dass Eclipse-Benutzer Projekte über die Play-Dienste erstellen können. Ich habe SBT heruntergeladen, es in meinen Dev-Ordner extrahiert und angefangen, dort globale Änderungen vorzunehmen.
Inhalt von C:\dev\.sbt\0.13\plugins\plugins.sbt
:
// Support Play in Eclipse
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")
Inhalt von C:\dev\.sbt\0.13\sbteclipse.sbt
:
import com.typesafe.sbteclipse.plugin.EclipsePlugin.EclipseKeys
// Download Source and Javadocs with binaries
EclipseKeys.withSource := true
EclipseKeys.withJavadoc := true
// Compile the project before generating Eclipse files, so that generated .scala or .class files for views and routes are present
EclipseKeys.preTasks := Seq(compile in Compile)
// Java project. Don't expect Scala IDE
EclipseKeys.projectFlavor := EclipseProjectFlavor.Java
// Use .class files instead of generated .scala files for views and routes
EclipseKeys.createSrc := EclipseCreateSrc.ValueSet(EclipseCreateSrc.ManagedClasses, EclipseCreateSrc.ManagedResources)
Inhalt von C:\dev\.sbt\0.13\conf\sbtopts
:
# ------------------------------------------------ #
# The SBT Configuration file. #
# ------------------------------------------------ #
# Disable ANSI color codes
#
#-no-colors
# Starts sbt even if the current directory contains no sbt project.
#
-sbt-create
# Path to global settings/plugins directory (default: ~/.sbt)
#
#-sbt-dir /etc/sbt
-sbt-dir C:/dev/.sbt/0.13/plugins
# Path to shared boot directory (default: ~/.sbt/boot in 0.11 series)
#
-sbt-boot C:/dev/.sbt/0.13/plugins/boot
# Path to local Ivy repository (default: ~/.ivy2)
#
#-ivy ~/.ivy2
# set memory options
#
#-mem <integer>
# Use local caches for projects, no sharing.
#
#-no-share
# Put SBT in offline mode.
#
#-offline
# Sets the SBT version to use.
#-sbt-version 0.11.3
# Scala version (default: latest release)
#
#-scala-home <path>
#-scala-version <version>
# java version (default: java from PATH, currently $(java -version |& grep version))
#
#-java-home <path>
Projekt bei C:\dev\eclipse\workspaces\company\project
existiert. In Cygwin navigiere ich zu diesem Ort und führe sbt eclipse
(oder activator eclipse
, was das gleiche Ergebnis hat) aus, was nach meinem Verständnis funktionieren sollte. Aber, wie ich schon sagte, bekomme ich einen Fehler, und es funktioniert nicht.
Kann mir jemand helfen, diese Einrichtung korrekt einzurichten, damit ich Eclipse-Projektdateien für einen Play-Dienst erstellen und meine glückliche Reise zur Migration fortsetzen kann?
Ich denke, das sbteclipse-Plugin versucht, mit meiner Systemversion von Scala, anstelle der vom Plugin angegebenen Version und im Boot-Ordner zur Verfügung gestellt werden.
Während ich die Beiträge und Links zu schätzen weiß, richten Sie das Eclipse-Plugin pro Projekt ein, was ich ausdrücklich gesagt habe, dass ich nicht kann. Ich muss sbt global pro Entwickler konfigurieren. – liltitus27
Ich habe die Antwort bearbeitet ... – asch
ich kann es immer noch nicht zur Arbeit bekommen. Ich habe meinen ursprünglichen Beitrag für alle Änderungen aktualisiert, die ich als Reaktion auf Ihren Beitrag vorgenommen habe. Die Eclipse-Benutzerschritte sollten die relevanten Schritte sein.Ich habe, so detailliert wie möglich, jeden Schritt beschrieben, den ich unternommen habe, einschließlich Ihrer Vorschläge. Danke, dass Sie sich die Zeit genommen haben, um zu helfen, ich schätze es. – liltitus27