簡體   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