2016-09-30 134 views
6

我必须遵循this教程,以使用maven为我的Apache Spark应用程序创建一个超级jar。Apache Spark Maven用于发布和开发应用程序的依赖关系

我已经在pom中设置了所有的Spark依赖关系<scope>provided</scope>。 这工作得很好,但现在当我在本地运行应用程序时,我得到一个错误,遗漏了Spark的依赖关系。

目前我不得不从pom中删除provided标签。

只有在构建发布应用程序时,我如何才能提供Spark依赖关系?

我使用Intellij作为开发应用程序的IDE。

回答

1

您可以创建单独的Maven配置文件。

最好的办法是在POM dependencyManagment部分,在那里你会指定版本,那么在配置文件中,你将有唯一的groupId +的artifactId +范围

例如:

<profile> 
    <id>dev</id> 
    <activation> 
     <activeByDefault>false</activeByDefault> 
    </activation> 
    <dependencies> 
    <!-- Here Spark deps without provided --> 
     <dependency> 
      <groupId>...</groupId> 
      <artifactId>...</artifactId> 
      <scope>compile</scope> 
     </dependency> 
    </dependencies> 
</profile> 
<profile> 
    <id>prod</id> 
    <dependencies> 
    <!-- Here Spark deps with provided --> 
     <dependency> 
      <groupId>...</groupId> 
      <artifactId>...</artifactId> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 
</profile>