2016-06-01 2 views
2

Activator 2.3.x에서 2.4.x로 (그리고 결국 2.5.x로) 업그레이드 할 예정입니다. 이 마이그레이션의 일부로 더 이상 activator eclipse 명령을 사용하여 Play 애플리케이션에서 Eclipse 프로젝트를 생성 할 수 없습니다.SBT를 사용하여 Eclipse 프로젝트 생성

나는 IntelliJ를 사용하는 팀에서 일하고 있습니다. 따라서 IntelliJ 사용자에게는 유용하지 않을 것이므로 프로젝트마다 이러한 변경을 할 수 없으며 프로젝트 소스로 버전을 변경하는 것은 적절하지 않습니다.

나는 these 지침을 따라 왔습니다.

  1. 변경 프로젝트/plugins.sbt이 프로젝트에서 play.evolutions.enabled=false
  2. evolutionplugin=disabled를, 프로젝트/application.conf에서
  3. 2.4.6을 사용하여 변경 : 여기에 지금까지 촬영 한 마이그레이션을위한 단계입니다 /build.sbt, libraryDependencies
  4. 이클립스 사용자
    A로부터 javaEbean를 제거합니다. SBT를 다운로드하여 설치하십시오. http://www.scala-sbt.org/
    -
    으로 추출하십시오. b. SBT_HOME 환경 변수를 생성하십시오 - SBT_HOME=C:\dev\.sbt\0.13
    c. %SBT_HOME%\bin ~ PATH
    - PATH=...;%SBT_HOME%\bin;
    d를 추가하십시오. %SBT_HOME%
    -C:\dev\.sbt\0.13\plugins
    e에 'plugins'폴더를 만듭니다. 플러그인 디렉토리에 plugins.sbt 파일을 만듭니다.
    - C:\dev\.sbt\0.13\plugins\plugins.sbt
    f. 다음 행을 global plugins.sbt에 추가하십시오.
    - addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")
    g SBT 플러그인 디렉토리를 지정하기 위해 %SBT_HOME%\conf\sbtopts을 편집하십시오 :
    - -sbt-dir C:/dev/.sbt/0.13/plugins
    h. %SBT_HOME%\conf\sbtopts을 편집하여 SBT 부트 디렉토리를 지정하십시오.
    - -sbt-boot C:/dev/.sbt/0.13/plugins/boot
    i. 내가 이클립스 프로젝트를 생성 할 수 있어야한다,이 시점에서 %SBT_HOME%

에서 sbteclipse.sbt 파일을 생성하지만 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 

, 위에서 설명 된 단계에서 볼 수 Eclipse 사용자가 Play 서비스에서 프로젝트를 만들 수 있도록 노력하고 있습니다. SBT를 다운로드하여 dev 폴더에 압축을 풀어서 전역 변경 작업을 시작했습니다.C:\dev\.sbt\0.13\plugins\plugins.sbt

내용 : C:\dev\.sbt\0.13\sbteclipse.sbt

// Support Play in Eclipse 
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0") 

내용 : C:\dev\.sbt\0.13\conf\sbtopts

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) 

내용 :

# ------------------------------------------------ # 
# 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> 

프로젝트 C:\dev\eclipse\workspaces\company\project에 존재한다. Cygwin에서 해당 위치로 이동하여 sbt eclipse (또는 동일한 결과를 갖는 activator eclipse)을 실행합니다. 이는 필자의 이해에 따라 작동해야합니다. 하지만 내가 말했듯이, 나는 오류가 있으며 작동하지 않는다.

Play 서비스 용 Eclipse 프로젝트 파일을 만들 수 있도록 올바르게 설정하는 것을 도와 줄 수 있고 행복한 LIL 이전 여행을 계속할 수 있습니까?

플러그인으로 지정한 버전 대신 내 시스템 버전의 scala로 sbteclipse 플러그인을 가져 오려고합니다. 부트 폴더에 제공됩니다.

답변

0

나는 최근에 Play 2.4에서 Play 2.5로 이전했으며 전체 절차는 this post으로 설명했습니다. another post에서 프로젝트를 "eclipcify"하는 방법을 찾을 수 있습니다.

나는 글로벌 sbt 설정을 사용한다는 것에 관심을 기울이지 않았다. 글로벌 SBT 설정에 대한 :

  1. 은 C 만들기 : \ dev에 \ .sbt \ 0.13 \ 플러그인 \ plugins.sbt 내용 :

    //Support Play in Eclipse 
    addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0") 
    
  2. 가 C 만들기 : \ dev에 \ .sbt \ sbteclipse

    import com.typesafe.sbteclipse.plugin.EclipsePlugin.EclipseKeys 
    EclipseKeys.preTasks := Seq(compile in Compile) 
    EclipseKeys.withSource := true 
    EclipseKeys.withJavadoc := true 
    
    // 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) 
    

    을 : 컨텐츠 .sbt 내 경우에는 대신 dev에 내 사용자의 루트 디렉토리입니다. 이 값을 생성하기 때문에, = 2.11.7하지만 테스트를 위해 나는 2.11.8을 넣어 :

  3. 프로젝트 build.sbt :

    import NativePackagerHelper._ 
    name := """play-server-example""" 
    
    version := "1.0-SNAPSHOT" 
    
    lazy val root = (project in file(".")).enablePlugins(PlayJava) 
    
    scalaVersion := "2.11.8" 
    
    resolvers += "Local Maven Repository" at "file:///"+Path.userHome.absolutePath+"/.m2/repository" 
    
    libraryDependencies ++= Seq(javaJdbc, cache, javaWs) 
    

    는 : 원래 나는 scalaVersion을 사용했다. 이것은 둘 다 작동합니다.

  4. 더 많은 옵션이 없습니다. 환경 변수에 sbt 옵션 만 있습니다 (내 게시물에있는 것과 같습니다).

결론

: 나는 일하는 것을 얻을 항목 만에게 1,2,3했다.

+0

나는 게시물과 링크를 고맙게 생각하면서 프로젝트별로 이클립스 플러그인을 설정했다. 개발자 당 전역으로 sbt를 구성해야합니다. – liltitus27

+1

답변을 편집했습니다 ... – asch

+0

아직 작동하지 않습니다. 귀하의 게시물에 대한 응답으로 작성한 모든 변경 사항에 대한 원래 게시물을 업데이트했습니다. Eclipse 사용자 단계가 관련 사용자 단계 여야합니다.나는 당신이 제안한 것을 포함하여, 내가 취한 모든 단계를 가능한 한 자세하게 설명했다. 또한 시간을내어 도와 주셔서 감사합니다. 감사드립니다. – liltitus27

관련 문제