在maven项目中混合使用java和scala两种jvm语言,mavenscala,scala语言在有些场景
分享于 点击 15697 次 点评:113
在maven项目中混合使用java和scala两种jvm语言,mavenscala,scala语言在有些场景
scala语言在有些场景下会大大减少代码量, 和java一样也是基于jvm的, 所以我们可以在一个项目中混合使用这两种语言。
将java源码放在src/main/java
目录下, java的测试代码放在src/test/java
, 将scala的源码文件放在src/main/scala
目录下, 将scala测试源码放在src/test/scala
目录下
然后如下配置pom文件
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>sandbox</groupId> <artifactId>testJavaAndScala</artifactId> <version>1.0-SNAPSHOT</version> <name>Test for Java + Scala compilation</name> <description>Test for Java + Scala compilation</description> <dependencies> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>2.7.2</version> </dependency> </dependencies> <build> <pluginManagement> <plugins> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <version>3.2.1</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.0.2</version> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <executions> <execution> <id>scala-compile-first</id> <phase>process-resources</phase> <goals> <goal>add-source</goal> <goal>compile</goal> </goals> </execution> <execution> <id>scala-test-compile</id> <phase>process-test-resources</phase> <goals> <goal>testCompile</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <executions> <execution> <phase>compile</phase> <goals> <goal>compile</goal> </goals> </execution> </executions> </plugin> </plugins> </build></project>
配置scala编译相关插件, 使用方式和纯java项目类似
# compile onlymvn compile# or compile and testmvn test# or compile, test and packagemvn package
用户点评