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>

猜你喜欢

转载自blog.csdn.net/u011817217/article/details/93337736