Spark使用maven进行打包(减少jar包大小):
<name>org.kafka.grammar</name>
<packaging>jar</packaging>
spark的依赖包
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.10 -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>2.1.1</version>
<scope>provided</scope>
</dependency>
这里之所以使用prodvided是为了确保Spark不与应用依赖的其他工件打包在一起。
但如果本地测试的话则需要吧这个prodvided注释掉否则,IDEA是找不到这个包的同时也无法使用该包下面的类。
由于在集群(spark的环境变量)中有这个jar包所以使用prodvided不仅可以避免jar包冲突,还可以减少jar包的大小
在Build的下面写:
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>