java - 如何在使用 Maven 创建 Jar 时使用依赖项在本地运行代码并排除它们
问题描述
我是新手,所以听起来很傻。我正在本地机器上编写 Scala Spark 代码,然后将其上传到集群中执行(测试环境)。我的问题是我不想在创建 Jar 时包含 Spark 依赖项,因为它们存在于集群中。但是要在本地运行代码,我需要它们。到目前为止,我已尝试提供所提供的范围
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_${scala.compat.version}</artifactId>
<version>2.4.0</version>
<scope>provided</scope>
</dependency>
这允许我从 Jar 中排除依赖项,但是当我在本地运行它时,我需要删除范围。我查看了其他范围选项,但找不到适合我的选项。我错过了什么?
解决方案
您需要使用不同的Maven 配置文件。
这样的事情会帮助你:
<profiles>
<profile>
<id>test</id>
…
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_${scala.compat.version}</artifactId>
<version>2.4.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
…
</profile>
<profile>
<id>debug</id>
…
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_${scala.compat.version}</artifactId>
<version>2.4.0</version>
</dependency>
</dependencies>
…
</profile>
</profiles>
然后,您可以test
在远程运行配置文件并debug
在本地运行配置文件。
推荐阅读
- c# - 将 csv 标头合并为新标头
- javascript - 从 div 而不是 transitionend 中删除动画的另一种方法是什么?
- c# - Unity:如何暂停我的游戏计时器并在“完成游戏”屏幕上显示时间结果
- javascript - React-Redux 对存储更改的唯一键警告
- java - Java找不到非java文件
- c# - IdentityServer 和 CertificateValidation ASP.NET Core
- sql-server - 服务器重启后的复制问题
- android - Android Studio 和 Emulator 中的应用界面不同
- python - 如何使用 Python 和 BeautifulSoup 在网站的 HTML 代码中查找特定文本?
- docker - wordpress docker 镜像和 nginx 反向代理