我使用的是Fedora 22操作系统,我正在尝试使用Play!框架。当然,我正在尝试构建尽可能简单的应用程序,这样我就可以有一个起点。
我尝试按照文档中的指南进行操作(https://www.playframework.com/documentation/2.4.x/NewApplication),但我在这里没有成功。当我在项目的基本文件夹中调用激活器时,它会失败,并指示我一些未解析的依赖项。我将发布我所采取的步骤,以便尽可能清楚地展示我所做的工作和问题所在,包括一些关于Java (我在某处读到我应该使用Oracle Java而不是OpenJDK,所以我下载了最新的Java SE JDK7)和sbt的信息,我认为这与这个过程有关。我的操作系统是葡萄牙语的,所以有几行是葡萄牙语的,但由于它们引用了众所周知的命令(基本上是命令的替代方案),我认为这不会影响理解。
su -
[root@localhost ~]# alternatives --config java
Há 3 programas que oferecem "java".
Seleção Comando
-----------------------------------------------
*+ 1 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.45-36.b13.fc22.x86_64/jre/bin/java
2 /usr/java/jdk1.7.0_79/bin/java
3 /usr/java/default/jre/bin/java
Indique para manter a seleção atual[+] ou digite o número da seleção: 2
[root@localhost ~]# alternatives --config javac
Há 1 programa que oferece "javac".
Seleção Comando
-----------------------------------------------
*+ 1 /usr/java/default/bin/javac
[root@localhost ~]# alternatives --config javaws
Há 1 programa que oferece "javaws".
Seleção Comando
-----------------------------------------------
*+ 1 /usr/java/default/jre/bin/javaws
Indique para manter a seleção atual[+] ou digite o número da seleção: 1
[root@localhost ~]# alternatives --config jar
Há 1 programa que oferece "jar".
Seleção Comando
-----------------------------------------------
*+ 1 /usr/java/default/bin/jar
Indique para manter a seleção atual[+] ou digite o número da seleção: 1
[root@localhost ~]# exit
logout
[gscofano@localhost new-project]$ java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
[gscofano@localhost new-project]$ javac -version
javac 1.7.0_79
[gscofano@localhost new-project]$ pwd
/home/gscofano/Documentos/Programacao/play/play-2.4.2
[gscofano@localhost new-project]$ ls
activator-1.3.5-minimal
[gscofano@localhost new-project]$ mkdir new-project
[gscofano@localhost new-project]$ cd ./new-project
[gscofano@localhost new-project]$ sbt about
[info] Set current project to new-project (in build file:/home/gscofano/Documentos/Programacao/play/play-2.4.2/new-project/)
[info] This is sbt 0.13.1
[info] The current project is {file:/home/gscofano/Documentos/Programacao/play/play-2.4.2/new-project/}new-project 0.1-SNAPSHOT
[info] The current project is built against Scala 2.10.4
[info]
[info] sbt, sbt plugins, and build definitions are using Scala 2.10.4
[gscofano@localhost new-project]$ ../activator-1.3.5-minimal/activator new first-app play-java
OK, application "first-app" is being created using the "play-java" template.
To run "first-app" from the command line, "cd first-app" then:
/home/gscofano/Documentos/Programacao/play/play-2.4.2/new-project/first-app/activator run
To run the test for "first-app" from the command line, "cd first-app" then:
/home/gscofano/Documentos/Programacao/play/play-2.4.2/new-project/first-app/activator test
To run the Activator UI for "first-app" from the command line, "cd first-app" then:
/home/gscofano/Documentos/Programacao/play/play-2.4.2/new-project/first-app/activator ui
[gscofano@localhost new-project]$ cd ./first-app
[gscofano@localhost first-app]$ ./activator
[info] Loading project definition from /home/gscofano/Documentos/Programacao/play/play-2.4.2/new-project/first-app/project
[info] Updating {file:/home/gscofano/Documentos/Programacao/play/play-2.4.2/new-project/first-app/project/}first-app-build...
[info] Resolving org.scala-sbt#precompiled-2_9_3;0.13.8 ...
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: org.scala-lang#scala-library;2.10.4: configuration not found in org.scala-lang#scala-library;2.10.4: 'master(compile)'. Missing configuration: 'compile'. It was required from com.typesafe#npm_2.10;1.1.1 compile
[warn] :: org.scala-lang#scala-compiler;2.10.4: configuration not found in org.scala-lang#scala-compiler;2.10.4: 'master(compile)'. Missing configuration: 'compile'. It was required from com.typesafe.play#twirl-compiler_2.10;1.1.1 compile
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn] Note: Unresolved dependencies path:
[warn] org.scala-lang:scala-library:2.10.4 ((sbt.Classpaths) Defaults.scala#L1203)
[warn] +- org.scala-sbt:control:0.13.8
[warn] +- org.scala-sbt:io:0.13.8
[warn] +- org.scala-sbt:classpath:0.13.8
[warn] +- org.scala-sbt:incremental-compiler:0.13.8
[warn] +- org.scala-sbt:persist:0.13.8
[warn] +- org.scala-sbt:compiler-integration:0.13.8
[warn] +- org.scala-sbt:actions:0.13.8
[warn] +- org.scala-sbt:main:0.13.8
[warn] +- org.scala-sbt:sbt:0.13.8
[warn] +- default:first-app-build:0.1-SNAPSHOT (sbtVersion=0.13, scalaVersion=2.10)
[warn] org.scala-lang:scala-compiler:2.10.4
[warn] +- org.scala-sbt:classpath:0.13.8
[warn] +- org.scala-sbt:incremental-compiler:0.13.8
[warn] +- org.scala-sbt:persist:0.13.8
[warn] +- org.scala-sbt:compiler-integration:0.13.8
[warn] +- org.scala-sbt:actions:0.13.8
[warn] +- org.scala-sbt:main:0.13.8
[warn] +- org.scala-sbt:sbt:0.13.8
[warn] +- default:first-app-build:0.1-SNAPSHOT (sbtVersion=0.13, scalaVersion=2.10)
sbt.ResolveException: unresolved dependency: org.scala-lang#scala-library;2.10.4: configuration not found in org.scala-lang#scala-library;2.10.4: 'master(compile)'. Missing configuration: 'compile'. It was required from com.typesafe#npm_2.10;1.1.1 compile
unresolved dependency: org.scala-lang#scala-compiler;2.10.4: configuration not found in org.scala-lang#scala-compiler;2.10.4: 'master(compile)'. Missing configuration: 'compile'. It was required from com.typesafe.play#twirl-compiler_2.10;1.1.1 compile
at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:291)
at sbt.IvyActions$$anonfun$updateEither$1.apply(IvyActions.scala:188)
at sbt.IvyActions$$anonfun$updateEither$1.apply(IvyActions.scala:165)
at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:155)
at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:155)
at sbt.IvySbt$$anonfun$withIvy$1.apply(Ivy.scala:132)
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:127)
at sbt.IvySbt.withIvy(Ivy.scala:124)
at sbt.IvySbt$Module.withModule(Ivy.scala:155)
at sbt.IvyActions$.updateEither(IvyActions.scala:165)
at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1369)
at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1365)
at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$87.apply(Defaults.scala:1399)
at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$87.apply(Defaults.scala:1397)
at sbt.Tracked$$anonfun$lastOutput$1.apply(Tracked.scala:37)
at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1402)
at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1396)
at sbt.Tracked$$anonfun$inputChanged$1.apply(Tracked.scala:60)
at sbt.Classpaths$.cachedUpdate(Defaults.scala:1419)
at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1348)
at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1310)
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:226)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.Execute.work(Execute.scala:235)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
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:262)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
[error] (*:update) sbt.ResolveException: unresolved dependency: org.scala-lang#scala-library;2.10.4: configuration not found in org.scala-lang#scala-library;2.10.4: 'master(compile)'. Missing configuration: 'compile'. It was required from com.typesafe#npm_2.10;1.1.1 compile
[error] unresolved dependency: org.scala-lang#scala-compiler;2.10.4: configuration not found in org.scala-lang#scala-compiler;2.10.4: 'master(compile)'. Missing configuration: 'compile'. It was required from com.typesafe.play#twirl-compiler_2.10;1.1.1 compile
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore?这是build.sbt
name := """first-app"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayJava)
scalaVersion := "2.11.6"
libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs
)
// Play provides two styles of routers, one expects its actions to be injected, the
// other, legacy style, accesses its actions statically.
routesGenerator := InjectedRoutesGenerator生成属性
#Activator-generated Properties
#Sat Aug 01 03:30:20 BRT 2015
template.uuid=4908845b-9453-410b-af0f-404c1440dff1
sbt.version=0.13.8和plugins.sbt
// The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.2")
// Web plugins
addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.6")
addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.3")
addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.7")
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.1.0")
// Play enhancer - this automatically generates getters/setters for public fields
// and rewrites accessors of these fields to use the getters/setters. Remove this
// plugin if you prefer not to have this feature, or disable on a per project
// basis using disablePlugins(PlayEnhancer) in your build.sbt
addSbtPlugin("com.typesafe.sbt" % "sbt-play-enhancer" % "1.1.0")
// Play Ebean support, to enable, uncomment this line, and enable in your build.sbt using
// enablePlugins(SbtEbean). Note, uncommenting this line will automatically bring in
// Play enhancer, regardless of whether the line above is commented out or not.
// addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "1.0.0")我试图用空行分隔最后一个文件中的行。什么都没变。
我试着在谷歌上搜索,但我找不到任何类似的东西。如果有人能帮我解决这个问题,我将不胜感激。最后,我想感谢所有花时间阅读这个问题的读者。
编辑:我刚刚意识到我使用的是/usr/default/jre/bin/javac。我将其修复为/usr/jdk1.8.0_51/jre/bin/javac,当我尝试Java SDK 8时。
发布于 2015-08-09 15:03:50
最后,我找到了一个解决方案。这是一个很难的问题。
因此,问题是由于某些原因,sbt无法自行下载的几个依赖项。为了解决这个问题,我设置了一个ivy构建文件,并使用ant来下载它们,而不使用play、sbt或任何与此相关的东西。我将在我的帖子的末尾发布更多细节。
我使用了激活器用户界面(/play-2.4.2/ activator -dist-1.3.5/activator ui),它再次开始构建项目。它通过了有问题的点,但后来失败了。无法下载的更多依赖项。我用同样的方法下载了它们。除了com.typesafe.sbtrc#actor-client-2-10;0.3.1之外,它适用于所有依赖项。ivy在maven存储库中查找我用ant下载的依赖项,最后一个位于bintray存储库中,至少在默认情况下不会被Ivy使用。我访问了这个存储库(http://dl.bintray.com/typesafe/ivy-releases/com.typesafe.sbtrc/)在我的web浏览器中,下载了其中的模块,并将其放入~/ivy/local/com.typesafe.sbtrc/中。
我再次调用激活器用户界面,它终于可以构建并运行我的项目了。
更多地解释一下这种情况,对于那些有此问题的actor-client-2-10依赖关系的人来说,当激活器构建项目时,它会在maven存储库和本地存储库中查找,而不是bintray存储库!我所做的一切就是将可在二进制托盘中找到的模块复制到我的本地存储库。当activator查看~/.ivy2/local时,它找到了它想要的工件,并将其安装在~/.ivy2/cache中。
如果你做了同样的事情来解决这个问题,请记得创建一些目录,这样目录树在bintray存储库中和你的本地存储库中是相同的。
好吧,正如我所承诺的,我将发布我用来下载有问题的依赖项的ivy构建文件。首先,我们必须下载并安装ant。然后,我们转到任意目录并创建一个名为build.xml的文件。在terminal中,cd进入该目录并键入ant。它将下载并安装在build.xml中定义的依赖项。此文件的内容应为
因为我第一次使用它是为了
让我们以给我带来问题的第一个依赖项为例。激活器报告依赖于org.scala-lang#scala-library;2.10.4。由于它遵循模型organisation#module;revision,因此用于安装此依赖项的build.xml文件将如下所示
发布于 2015-08-01 22:49:14
尝试使用Java 8。根据https://www.playframework.com/download你需要JDK8。
我在Fedora 22和play上也遇到了问题。我在某处读到Fedora中有一个bug。我不能修复它:(
发布于 2016-09-19 17:54:02
我遇到了类似的问题。我删除了所有名为"scala-lang“的目录*“在.ivy和.maven下,重新运行sbt编译。sbt下载依赖项后,一切都很顺利。
https://stackoverflow.com/questions/31759583
复制相似问题