本文主要是介绍Scala项目通过Maven打成assembly包,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、背景
工作中在使用Scala语言开发大数据应用项目的时候,需要将工程打成assembly包(依赖的第三方jar会打到生成的jar包中),通过spark-submit命令提交作业。Scala项目是通过Maven构建和管理其依赖,那么需要pom文件中使用哪些插件才能将工程打成assembly包呢?
二、plugins
1. maven-compiler-plugin
如果不指定代码要使用什么样的jdk
版本编译的话,Maven就会用默认的jdk
版本来进行处理,这样就容易出现版本不匹配,以至于可能导致编译不通过的问题。使用maven-compiler-plugin
插件可以指定项目源码的jdk
版本,编译后的jdk
版本,以及编码
。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <!-- 源代码使用的JDK版本 --> <target>1.8</target> <!-- 需要生成的目标class文件的编译版本 --> <encoding>UTF-8</encoding><!-- 字符集编码 --></configuration>
</plugin>
2. maven-scala-plugin
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>
3. maven-assembly-plugin
<plugin><artifactId>maven-assembly-plugin</artifactId><version>3.1.0</version><configuration><appendAssemblyId>false</appendAssemblyId><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>assembly</goal></goals></execution></executions>
</plugin>
这篇关于Scala项目通过Maven打成assembly包的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!