首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法通过scala中的Gradle添加Scala swing依赖项

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

Stack Overflow用户
提问于 2015-01-01 13:26:12
回答 2查看 1.2K关注 0票数 1

我是一个初学者,学习Scala。我在Windows8.1上,使用Scala 4.0.0Gradle以及斯卡拉月食插件来创建一个项目,其中我想使用scala.swingjavax.media包。我在build.gradle中添加了两个库作为依赖项,只有javax.media工作.

我所做的步骤是:

  1. 按以下方式创建文件夹和文件 foo =-src\##* 其中build.gradle是Gradle构建脚本,Foo.scala是Scala脚本,如下所示 <<build.gradle>> 应用插件:'scala‘应用插件:'eclipse’存储库{ mavenCentral() }依赖{编译'org.scala-lang:scala-swing:2.10.4‘编译'javax.media:jmf:2.1.1e’} <<Foo.scala>> 导入javax.media.Player //no错误导入scala.swing._ //错误:对象swing不是scala类Foo {}包的成员
  2. 使用命令行导航到foo并运行gradle eclipse
  3. 在Scala中,执行import -> General -> Existing Projects into Workspace -> Browse -> Foo

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

<<.classpath>>

代码语言:javascript
复制
<?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构建脚本时,我都必须这样做。请建议为什么scala-swing-something.jar没有被Gradle导入,以及如何修复它。

这是运行$ gradle dependencies后的日志记录消息。

代码语言:javascript
复制
$ 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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-19 13:43:58

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

代码语言:javascript
复制
dependencies {
    compile 'org.scala-lang:scala-library:2.11.5'
    compile 'org.scala-lang:scala-swing:2.10.4'
}

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

代码语言:javascript
复制
dependencies {
    compile 'org.scala-lang:scala-library-all:2.11.5'
}

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

代码语言:javascript
复制
gradle dependencies

它将告诉您Gradle找到了什么依赖项。除其他事项外,我的还说:

代码语言:javascript
复制
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依赖项,它的名称和版本与我指定的名称和版本不同。复制并粘贴到您的build.gradle依赖项中:

代码语言:javascript
复制
dependencies {
    compile 'org.scala-lang:scala-library:2.11.5'
    compile 'org.scala-lang.modules:scala-swing_2.11:1.0.1'
}

以及:

代码语言:javascript
复制
gradle cleanEclipse eclipse

所有依赖项都能工作!

票数 3
EN

Stack Overflow用户

发布于 2015-01-01 13:33:15

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

你可以通过运行

代码语言:javascript
复制
$ gradle dependencies

并检查scala-swing是否被正确解析。我检查了Maven central,您肯定正确地列出了依赖项。如果没有显示错误,请尝试清理项目文件并重新生成。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27731210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档