繁体   English   中英

无法通过Scala IDE中的Gradle添加Scala swing依赖项

[英]Cannot add scala swing dependency via Gradle in Scala IDE

我是学习Scala的初学者。 我在Windows 8.1上,将Scala IDE 4.0.0Gradlescalaeclipse插件一起使用来创建一个项目,我想在其中使用scala.swingjavax.media包。 我将两个库都添加为build.gradle中的依赖项,只有javax.media起作用。

我完成的步骤是:

  1. 创建文件夹和文件,如下所示

     foo |-src |-main |-scala |-Foo.scala |-build.gradle 

    其中build.gradle是Gradle构建脚本,而Foo.scala是Scala脚本,如下所示

    <<build.gradle>>

     apply plugin: 'scala' apply plugin: 'eclipse' repositories { mavenCentral() } dependencies { compile 'org.scala-lang:scala-swing:2.10.4' compile 'javax.media:jmf:2.1.1e' } 

    <<Foo.scala>>

     import javax.media.Player //no error import scala.swing._ //error: object swing is not a member of package scala class Foo { } 
  2. 使用命令行,导航到foo并运行gradle eclipse

  3. 在Scala IDE中, import -> General -> Existing Projects into Workspace -> Browse -> Foo

然后,我在第2行的Foo.scala遇到错误,该错误读取object swing is not a member of package scala 左面板上的“ Referenced Libraries列表仅显示javax.media jmf-2.1.1e.jar ,如下图所示。

对象摆动不是包scala的成员

<<.classpath>>

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="output" path="bin"/>
<classpathentry kind="src" path="src/main/scala"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER" exported="true"/>
<classpathentry kind="con" path="org.scala-ide.sdt.launching.SCALA_CONTAINER" exported="true"/>
<classpathentry kind="lib" path="C:/Users/mm/.gradle/caches/modules-2/files-2.1/javax.media/jmf/2.1.1e/fe9287a362578bfb8b7b9dba42af0ec80a297abb/jmf-2.1.1e.jar" exported="true"/>
</classpath>

我试图配置Eclipse的构建路径并手动添加scala-swing.jar ,效果还可以,但是每当我运行Gradle构建脚本时,都必须这样做。 请提出为什么Gradle无法导入scala-swing-something.jar以及如何修复它。


这是运行$ gradle dependencies后的日志消息:

$ gradle dependencies
:dependencies

------------------------------------------------------------
Root project
------------------------------------------------------------

archives - Configuration for archive artifacts.
No dependencies

compile - Compile classpath for source set 'main'.
+--- org.scala-lang:scala-swing:2.10.4
|    \--- org.scala-lang:scala-library:2.10.4
\--- javax.media:jmf:2.1.1e

default - Configuration for default artifacts.
+--- org.scala-lang:scala-swing:2.10.4
|    \--- org.scala-lang:scala-library:2.10.4
\--- javax.media:jmf:2.1.1e

runtime - Runtime classpath for source set 'main'.
+--- org.scala-lang:scala-swing:2.10.4
|    \--- org.scala-lang:scala-library:2.10.4
\--- javax.media:jmf:2.1.1e

testCompile - Compile classpath for source set 'test'.
+--- org.scala-lang:scala-swing:2.10.4
|    \--- org.scala-lang:scala-library:2.10.4
\--- javax.media:jmf:2.1.1e

testRuntime - Runtime classpath for source set 'test'.
+--- org.scala-lang:scala-swing:2.10.4
|    \--- org.scala-lang:scala-library:2.10.4
\--- javax.media:jmf:2.1.1e

zinc - The Zinc incremental compiler to be used for this Scala project.
No dependencies

BUILD SUCCESSFUL

Total time: 11.159 secs

我遇到过同样的问题。 我认为这是Scala版本和Scala Swing版本之间的不兼容。 我有这些依赖项:

dependencies {
    compile 'org.scala-lang:scala-library:2.11.5'
    compile 'org.scala-lang:scala-swing:2.10.4'
}

要解决此问题,请添加scala-library-all依赖项:

dependencies {
    compile 'org.scala-lang:scala-library-all:2.11.5'
}

您可以保留它,但是它将添加您可能不需要的所有依赖项。 如果您不想这样做,请调用:

gradle dependencies

它将告诉您Gradle找到了哪些依赖项。 我的说,除其他外:

compile - Compile classpath for source set 'main'.
+--- org.scala-lang:scala-library-all:2.11.5
|    +--- org.scala-lang:scala-library:2.11.5
|    +--- org.scala-lang.modules:scala-swing_2.11:1.0.1
|    |    \--- org.scala-lang:scala-library:2.11.0 -> 2.11.5

请注意Scala Swing依赖项,它的名称和版本与我指定的名称和版本不同。 将其复制并粘贴到build.gradle依赖项中:

dependencies {
    compile 'org.scala-lang:scala-library:2.11.5'
    compile 'org.scala-lang.modules:scala-swing_2.11:1.0.1'
}

还有,

gradle cleanEclipse eclipse

所有依赖项都能正常工作!

看起来Gradle在生成Eclipse文件时无法解决org.scala-lang:scala-swing:2.10.4依赖项。 我使用IntelliJ,它做同样的事情-一切似乎都正常,但是缺少依赖项-非常令人沮丧。

您可以通过运行检查

$ gradle dependencies

并检查scala-swing是否已正确解决。 我检查了Maven Central,您肯定列出了正确的依赖项。 如果未显示任何错误,请尝试清除项目文件并重新生成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM