java - 是否建议为 Maven 项目分离 Scala 和 Java 源文件?

标签 java scala maven

我一直致力于一个完全由 Java 组成的 Maven 项目,最近开始将 Scala 代码混入其中。

我对 Scala 提供的强大表现力、scala-maven-plugin 的易用性,尤其是 Java 和 Scala 之间令人难以置信的互操作性感到惊讶。

不过,我打了一个不便;按照Maven的约定,Java的源代码放在src/main/java,而Scala的源代码放在src/main/scala。我发现这很麻烦,因为我必须经常来回切换 Java 和 Scala 源文件,并且每次我都必须遍历包目录的深层层次结构(我经常关闭选项卡以防止编辑器困惑)。

所以问题是:是否建议维护单独的目录src/main/javasrc/main/scala?如果是,为什么?

为了补充更多背景信息,我一直在研究 Web 应用程序框架 Wicket,其约定是将 HTML 文件与其相应的 Java 文件放在一起。如果我们将目录分开,自然 HTML 文件也会分开(我认为将 Scala 文件和相应的 HTML 文件放在不同的目录中没有意义)。然后是“为什么我找不到 Foo.html?哦,我找错目录了。”

源文件本身很容易被人和机器通过检查它们的扩展名来区分。我配置了 pom.xml 来处理放在 src/main/java 中的 Java 和 Scala,它工作了(编译和运行)。另一方面,分离目录会带来在 Java 和 Scala 中定义冲突类的风险,这是一个粗心的错误。

好吧,如果目录不仅包含 Java,还包含 Scala,我不想将它命名为 java。但这是我唯一能想到的分隔目录的要点。
(编辑:我想出了一个解决方法——解释;让我们认为 java 代表 Java 虚拟机。这样,有 src/main/如果我们决定使用 JNI,c 并不矛盾,因为 C 不在 JVM 上运行。)

哦,还有一点;我的项目不是开源项目;开发便利胜过刻意遵守约定。

这个问题的灵感来自 this answer .

最佳答案

我会说是的,尽可能多地重复使用代码。也许将来您可以在其他地方使用这个 Java 片段...

您可能知道,您可以在 Scala 项目中使用 Java,但不能在 Java 项目中使用 Scala。因此,在这个特定示例中,它将帮助您处理( future ?)Java 项目。如果您想重用一段 Java 代码,您可以在 Java 项目和 Scala 项目中这样做。

所以我.m.h.o.它不会停在 src/main/... 但你真的应该把它们放在不同的组件中。


顺便说一下:如果我是对的,Wicket 也允许您将 html 放在其他地方,即使是在不同的项目中......我看到它(只)一次很方便,我们必须创建不同的地方我们不同客户的前端。 Java 代码保持不变,wicket-id 也一样,但是 html 到处都变了。尽管使用 Qwicky 插件确实给我们带来了一些问题,因为它无法再在我们的 IDE 中找到 html 文件。

关于java - 是否建议为 Maven 项目分离 Scala 和 Java 源文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40106622/

相关文章:

java - Spring 框架 : set bean name programmatically

java - wait() 没有捕获 notification();导致奇怪的死锁行为

scala - 如何在 Scala 代码本身中与编译器交互?

java - 使用Maven构建Hadoop src时出错

java - Maven 3.0.5 对比 3.1.1 对比 3.2.1

java - 如何在不引起 CSS 警告的情况下在 JavaFX 2.2 中设置自定义控件的外观?

java - 在 Google App Engine 验证 Firebase token

scala - sbt REPL中的java.lang.OutOfMemoryError:Metaspace是否正常?

斯卡拉 Spark : Performance issue renaming huge number of columns

java - 如何阻止 jbossshrinkwrap 远程解决依赖关系?