maven打包scala程序

pom文件打包scala程序

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>


  <groupId>org.example</groupId>
  <artifactId>项目名称</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>项目名称</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <build>
  <plugins>
  <plugin>
    <!--专门用于scala项目构建和编译的插件,用于声明项目会利用scala-maven-plugin来执行scala的编译任务-->
    <groupId>net.alchim31.maven</groupId>
    <artifactId>scala-maven-plugin</artifactId>
    <version>4.8.1</version>
    <!-- 插件部分配置项-->
    <executions>
      <execution>
        <id>scala-compile-first</id>
        <phase>process-resources</phase>
        <goals>
          <goal>add-source</goal>
          <goal>compile</goal>
        </goals>
      </execution>
      <execution>
        <id>scala-test-compile</id>
        <phase>process-test-resources</phase>
        <goals>
          <goal>testCompile</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
  <plugin>

    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.2.4</version> <!-- 使用最新版本替换 -->
    <executions>
      <execution>
        <phase>package</phase>

        <goals>
          <goal>shade</goal>
        </goals>
        <configuration>
          <!--一个小点 目的: 确保在构建 shaded JAR 时不会包含这些签名文件,避免执行jar包时出现SecurityExceptions安全问题  签名冲突-->
            <filters>
              <filter>
              <!-- Do not copy the signatures in the META-INF folder.
              Otherwise, this might cause SecurityExceptions when using the JAR. -->
          <artifact>*:*</artifact>
          <!-- 部分列出最终需要从jar包中排除的文件别表如下面三个文件-->
          <excludes>
            <exclude>META-INF/*.SF</exclude>
            <exclude>META-INF/*.DSA</exclude>
            <exclude>META-INF/*.RSA</exclude>
          </excludes>
        </filter>
        </filters>
      <!-- shade 插件的内置转化器从而你可以在生成的最终 shaded JAR 中设置 MANIFEST.MF 文件中的 Main-Class 属性指定程序的主入口 > mainClass元素-->
          <transformers>
            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
              <mainClass>org.example.scala.test011</mainClass>
            </transformer>
          </transformers>
        </configuration>
      </execution>
    </executions>
    <configuration>
    </configuration>
  </plugin>
        </plugins>
      </build>

      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.spark</groupId>
          <artifactId>spark-streaming_2.12</artifactId>
          <version>3.0.0</version>
        </dependency>
        <!--引入spark-streaming 整合kafka的依赖-->
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-streaming-kafka-0-10_2.12</artifactId>
      <version>3.0.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-core_2.12</artifactId>
      <version>3.0.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-sql_2.12</artifactId>
      <version>3.0.0</version>
    </dependency>
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-library</artifactId>
      <version>2.12.13</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-client</artifactId>
      <version>3.3.4</version>
    </dependency>
  </dependencies>
</project>

在执行jar包时关于Error: A JNI error has occurred, please check your installation and try again这个保存问题再确保

1.javac和java版本一致

2.pom文件中指定了mainClass元素确定了程序主入口

之后在idea中的Edit Configurations 中添加上个配置参数:

Add dependencies with“provided" scope to classpath

进而可以避免在执行jar包时由于缺少 provided 依赖而导致的类找不到问题而报错哦

配置后这里有上述箭头指向的配置项即可;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/399213.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

快速上手Spring Boot整合,开发出优雅可靠的Web应用!

SpringBoot 1&#xff0c;SpringBoot简介1.1 SpringBoot快速入门1.1.1 开发步骤1.1.1.1 创建新模块1.1.1.2 创建 Controller1.1.1.3 启动服务器1.1.1.4 进行测试 1.1.2 对比1.1.3 官网构建工程1.1.3.1 进入SpringBoot官网1.1.3.2 选择依赖1.1.3.3 生成工程 1.1.4 SpringBoot工程…

前端进度条组件NProgress

nprogress 安装 npm install --save nprogress使用 import NProgress from nprogress // 引入nprogress插件 import nprogress/nprogress.css // 这个nprogress样式必须引入// axios请求拦截器 axios.interceptors.request.use(config > {NProgress.start() // 设置加载进…

CSS三大定位方式(浮动、定位、弹性盒)详细解析

CSS三大定位方式 前言&#xff1a;作为一名前端开发&#xff0c;已经工作2年了。由于自己是半路出家&#xff0c;从嵌入式方向转到前端开发&#xff0c;都是边百度边开发&#xff0c;很多基础都不了解&#xff0c;只要解决问题就好&#xff0c;但是近来为了让自己知识体系化&a…

Nginx 反向代理配置

Nginx就不废话了&#xff0c;web服务器。 最近在备案一个域名&#xff0c;想要备案&#xff0c;部署一个服务器&#xff0c;平常很少自己配置Nginx&#xff0c;今天记录下。 1、反向代理 正向代理 指 客户端通过代理访问后端服务 反向代理 指 服务器推出一个客户&#xff0…

Git 使用教程

一、Git的认识 1.1版本控制 什么是“版本控制”&#xff1f;我为什么要关心它呢&#xff1f; 版本控制是一种记录一个或若干文件内容变化&#xff0c;以便将来查阅特定版本修订情况的系统。 a) 还原&#xff1a;如果你是程序开发者&#xff0c;在新写一个促销活动的java文…

Elasticsearch:创建自定义 ES Rally tracks 的分步指南

作者&#xff1a;Alejandro Snchez 按照这个综合教程学习如何制作个性化的 Rally tracks ES Rally 是什么&#xff1f;它的用途是什么&#xff1f; ES Rally 是一个用于在 Elasticsearch 上测试性能的工具&#xff0c;允许你运行和记录比较测试。 做出决策可能很困难&#x…

电脑开机启动项在哪里设置?优化系统速度不是梦!

电脑的开机启动项设置直接影响着系统启动的速度和性能&#xff0c;合理配置启动项可以提高系统的启动速度&#xff0c;同时确保开机时运行的程序符合个人需求。那么&#xff0c;电脑开机启动项在哪里设置呢&#xff1f;本文将详细介绍电脑开机启动项设置的三种方法&#xff0c;…

helm部署gitlab-runner问题解决

关于.gitlab-ci.yml中build镜像时&#xff0c;docker守护进程未启动错误 参考&#xff1a;https://docs.gitlab.com/runner/install/kubernetes.html 问题截图 解决方法 values.yaml中关于conf.toml添加 注意&#xff1a;确保每个节点的docker正常运行 [[runners.kubernetes…

week04day01(爬虫)

一. 爬虫 只爬取公开的信息&#xff0c;不能爬取未公开的后台数据 1.爬虫的合法性 法无禁止皆可为 -- 属于法律的灰色地带https://www.tencent.com/robots.txt -- 网站/robots.txt 可以查看禁止爬取的内容 2. URL Uniform Resource Locator 统一资源定位符https://www.…

2024年黑龙江省考公告出来了,招7768人,速速查收报名流程!

✔️报名时间&#xff1a;2024年2月19日9:00至2月23日17:00 ✔️资格审查时间&#xff1a;至2024年2月23日17:00 ✔️缴费时间&#xff1a;至2024年2月25日09&#xff1a;00 ✔️打印准考证时间&#xff1a;2024年3月12日9&#xff1a;00至3月17日9&#xff1a;00 ✔️公共科目…

多线程相关(1)

线程调度 线程状态&#xff1a;状态切换阻塞与唤醒阻塞唤醒 wait 与 sleep创建线程方式 线程是cpu任务调度的最小执行单位&#xff0c;每个线程拥有自己独立的程序计数器、虚拟机栈、本地方法栈。 线程状态&#xff1a; 线程状态包括&#xff1a;创建、就绪、运行、阻塞、死亡…

Leetcode刷题笔记题解(C++):203. 移除链表元素

思路&#xff1a;不同的情况出现了&#xff0c;就是第一个节点要是为等于val的节点&#xff0c;可以新建一个节点&#xff0c;并next指向head&#xff0c;这样就可以遍历新的链表来删除节点 /*** Definition for singly-linked list.* struct ListNode {* int val;* L…

揭秘阿里巴巴商品详情API:电商数据获取新篇章,业务效率飞跃提升

阿里巴巴平台商品详情API接口技术深度解析 一、概览 在阿里巴巴这个庞大的电商生态中&#xff0c;商品详情API接口&#xff08;item_get&#xff09;扮演着至关重要的角色。通过这一接口&#xff0c;开发者可以轻松地获取商品的详细信息&#xff0c;为选品、数据分析、价格监…

我是怎么用静态IP代理为Google账号保驾护航的

我为何要使用到静态IP代理服务 我是一名IT从业者&#xff0c;在很多年前就加入了一家跨国软件公司&#xff0c;日常需要在全世界各地跟甲方沟通&#xff0c;负责的工作中重要的一块就是Google广告&#xff0c;为此公司还特意给配置了一台笔记本电脑。 目录 我为何要使用到静态…

计算机视觉基础:【矩阵】矩阵选取子集

OpenCV的基础是处理图像&#xff0c;而图像的基础是矩阵。 因此&#xff0c;如何使用好矩阵是非常关键的。 下面我们通过一个具体的实例来展示如何通过Python和OpenCV对矩阵进行操作&#xff0c;从而更好地实现对图像的处理。 示例 示例&#xff1a;选取矩阵中指定的行和列的…

使用IntelliJ IDEA查看接口的全部实现方法

在大型Java项目中&#xff0c;经常会使用接口和抽象类进行代码设计。为了更好地了解代码结构和功能&#xff0c;我们需要快速查看一个接口的所有实现类。IntelliJ IDEA提供了一些方便的方法来实现这一目标。 1. 点击查看接口的实现子类 在IDEA中&#xff0c;你可以轻松地查看…

Ansys Zemax | 使用点扩散函数的衍射极限成像系统的分辨率

附件下载 联系工作人员获取附件 成像系统&#xff08;例如显微镜&#xff09;的衍射极限分辨率可以通过不同方式表征。在本文中&#xff0c;我建议使用在 OpticStudio 中计算的点扩散函数 (PSF) 来客观衡量这些成像系统的分辨率。文中介绍了重叠图像&#xff08;探测器&#x…

SpringBoot项目如何打包成docker镜像?

将Spring Boot项目打包成Docker镜像的过程可以分为以下几个步骤&#xff1a; 1. 创建Dockerfile 首先&#xff0c;你需要在Spring Boot项目的根目录下创建一个Dockerfile。这个文件包含了Docker镜像构建的所有指令。一个基本的Dockerfile可能看起来像这样&#xff1a; # 使用…

软件测试面试常见问题【含答案】

一、面试技巧题(主观题) 序号面试题1怎么能在技术没有那么合格的前提下给面试官留个好印象&#xff1f;2面试时&#xff0c;如何巧妙地避开不会的问题&#xff1f;面试遇到自己不会的问题如何机智的接话&#xff0c;化被动为主动&#xff1f;3对于了解程度的技能&#xff0c;被…

【自然语言处理】:实验4答案,预训练语言模型实现与应用

代码和报告均为本人自己实现&#xff08;实验满分&#xff09;&#xff0c;只展示主要任务实验结果&#xff0c;如果需要详细的实验报告或者代码可以私聊博主&#xff0c;接实验技术指导1对1 实验要求布置请看http://t.csdnimg.cn/1sh7s 运行模型&#xff0c;测试模型在有 100%…
最新文章