我一直致力于完全由Java组成的Maven项目,最近开始将Scala代码混合到其中。
我对Scala提供的出色表现力,scala-maven-plugin的易用性,特别是Java和Scala之间令人难以置信的互操作性感到惊讶。
然而,我遇到了一个不便;根据Maven的惯例,Java的源代码进入src/main/java
,而Scala进入src/main/scala
。我发现它非常繁琐,因为我必须经常来回浏览Java和Scala源文件,每次我必须遍历包目录的深层次结构(我经常关闭标签以防止我的编辑器混乱)。
所以问题是:是否建议维护单独的目录src/main/java
和src/main/scala
?如果是这样,为什么?
为了增加更多背景知识,我一直在研究Web应用程序框架Wicket,它的惯例是将HTML文件与相应的Java文件放在一起。如果我们保持目录分离,HTML文件自然也是分开的(我不认为将Scala文件和相应的HTML文件放在不同的目录中是有意义的)。然后就是为什么我找不到Foo.html?哦,我正在寻找错误的目录。"
源文件本身很容易通过检查扩展来区分人类和机器。我配置pom.xml来处理src/main/java
中放在一起的Java和Scala,并且它有效(编译并运行)。另一方面,分离目录存在在Java和Scala中定义冲突类的风险,这是一个粗心的错误。
好吧,如果目录java
不仅包含Java,而且包含Scala,我也不想命名。{1}}。但这是我可以提出的唯一分离目录的方法
(编辑:我已经提出了一种解决方法解释;让我们认为java
代表 Java虚拟机。这样,让src/main/c
没有&#39 ;如果我们决定使用JNI,则会发生矛盾,因为C不能在JVM上运行。)
哦,还有一点;我的项目不是一个开源项目;发展便利性比努力遵守惯例更受欢迎。
这个问题的灵感来自this answer。
答案 0 :(得分:0)
我说是的,尽可能多地重复使用代码。也许以后你可以在其他地方使用这个Java作品......
您可能知道,您可以在Scala项目中使用Java,但在Java项目中不使用Scala。所以在这个具体的例子中,它将帮助你(未来?)Java项目。如果要重用一段Java代码,可以在Java项目和Scala项目中执行此操作。
所以i.m.h.o.它不会停留在src / main / ...但是你应该把它们放在不同的组件中。
顺便说一下,小方注意:如果我纠正了,Wicket允许你将html放在其他地方,即使是在另一个项目中...我看到它只是方便(只)一次,我们不得不为我们的不同客户创建不同的前端。 java代码保持不变,wicket-id也是如此,但html随处可见。虽然使用Qwicky插件确实给我们带来了一些问题,因为它在我们的IDE中找不到html文件了。