2014-10-22 57 views
0

我有一个gradle项目;我在scala.com.EssencePVP.models中有一些scala类,我想将其导入到我的java代码中,该代码具有与此相同的包名。如何在java中导入一个scala包?

结构看起来是这样的:

的src/main/JAVA/COM/EssencePVP/

的src/main /斯卡拉/ COM/EssencePVP /模型/

,当我尝试导入我的斯卡拉包(进口com.EssencePVP.models *)到Java,我得到这个错误信息:

EssencePVPMod/build/sources/java/com/EssencePVP/EssencePVP.java:56: error: package com.EssencePVP.models does not exist

明确的问题是,试图在java目录看,而不是在S cala目录。我该如何解决这个问题?

谢谢你。

+1

请注意,导入与源文件所在的实际目录几乎没有任何关系 - 它们只是一种便利,因此您不必编写完全限定名称(package.name.ClassName)时间。您的问题不在于导入,而是在编译Java文件时,在由javac使用的类路径中添加由scalac编译的.class文件(来自Scala源文件)。你的项目如何建成?例如,你使用像SBT或Maven这样的构建系统吗? – 2014-10-22 09:41:24

+0

(忘了关于构建系统的问题 - 我应该读得更好。) – 2014-10-22 10:55:51

回答

1

根据Gradle Scala plugin documentation,它似乎只允许将src/main/scala中的Java代码与Scala代码一起编译。您可以尝试为Scala插件设置srcDirs = ["src/main/java", "src/main/scala"],并相应地从Java srcDirs中删除src/main/java

请注意,Maven和SBT没有这个限制。

+0

谢谢,我也提到了这个:http://stackoverflow.com/questions/23261075/compiling-scala-before-alongside-java-with- gradle这个 – 2014-10-22 17:33:56