1. 在Maven pom.xml中加入
<build>
<plugins>
<!-- plugin是用来编译scala源代码的,毕竟java与scala是二种不同的语言,
有各自的sdk和编译器,所以需要专门的maven插件来处理scala的编译 -->
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<version>2.15.2</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
2. 打包命令
mvn clean package默认只处理java源代码的编译、打包,而不管scala,所以编译时遇到Hello这个由scala语言编写的class,此时scala还没编译生成class,所以找不到相应的调用入口。
解决办法:
mvn clean scala:compile compile package
如上,在compile前加入scala:compile,这是maven-scala-plugin插件提供的选项,表示编译scala,这样一来,先编译scala,再编译java,最后打包
3. 对 Maven Project 打包(实验工具是 IDEA)
打开Terminal,进入 Maven Project的路径下,运行
mvn package --打包,但不编译 Scala 程序
在 target 的路径下,生成了
maven-archiver/pom.properties
maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
${artifactId}-${version}.jar ----如 SparkDemo-1.0-SNAPSHOT.jar
4. 清理已经存在的 target 路径
mvn clean --清理已存在的 target 路径