我有一个应用程序,我希望混合Java和Scala源(实际上它将Java应用程序迁移到scala - 但有时一点).
我可以在IDE中使这项工作很好,非常好.但是我不知道怎么用maven做这个 - scalac可以编译java和scala交织在一起,但是如何为模块设置maven?
另外,我的scala源是否必须是与java不同的文件夹?
使用maven scala插件,如下所示的配置将适用于混合java和scala源的项目(scala源当然位于/ scala目录中,如其他人所述).
你可以运行运行mvn编译,测试等...它将全部正常工作.非常好(它会自动运行scalac).
对于一个出色的IDE,IntelliJ 8可以很好地工作:添加scala插件,然后添加一个scala facet,然后调整scala的编译设置以首先运行scalac(如果你有scala和java源的循环依赖关键,则很关键).
4.0.0 demo scala-java-app 0.0.1-SNAPSHOT jar scala-java-app scala-tools.org Scala-tools Maven2 Repository http://scala-tools.org/repo-releases scala-tools.org Scala-tools Maven2 Repository http://scala-tools.org/repo-releases org.scala-tools maven-scala-plugin compile compile compile test-compile testCompile test-compile process-resources compile maven-compiler-plugin 1.5 org.scala-lang scala-library 2.7.2 junit junit 3.8.1 test
是的,scala部分必须位于单独的模块和src/main/scala
目录中.Maven认为像这样的混合来源是异端邪说.
您可以通过导入scala maven插件来启用scala编译.在"用法"页作为一个很好的例子.
我曾经问过一个非常类似的问题,关于如何在Maven项目中包含非Java代码.答案的要点是在src下为每种编程语言设置一个不同的目录,并查找/编写一个知道如何处理每个编程语言的Maven插件.例如:
src/ |-- main | |-- bin | |-- sh | |-- sql | |-- scala | |-- java | `-- resources |-- site ...