Idea使用Maven编译scala和打包jar

2023-10-28

下面Maven的pom文件


 
 
  1. <properties>
  2. <maven.compiler.source>1.8 </maven.compiler.source>
  3. <maven.compiler.target>1.8 </maven.compiler.target>
  4. <encoding>UTF-8 </encoding>
  5. <scala.version>2.11.8 </scala.version>
  6. <scala.compat.version>2.11 </scala.compat.version>
  7. </properties>
  8. <dependencies>
  9. <dependency>
  10. <groupId>org.scala-lang </groupId>
  11. <artifactId>scala-library </artifactId>
  12. <version>${scala.version} </version>
  13. </dependency>
  14. </dependencies>
  15. <build>
  16. <!--scala待编译的文件目录-->
  17. <sourceDirectory>src/main/scala </sourceDirectory>
  18. <testSourceDirectory>src/test/scala </testSourceDirectory>
  19. <!--scala插件-->
  20. <plugins>
  21. <plugin>
  22. <groupId>net.alchim31.maven </groupId>
  23. <artifactId>scala-maven-plugin </artifactId>
  24. <version>3.2.2 </version>
  25. <executions>
  26. <execution>
  27. <goals>
  28. <goal>compile </goal>
  29. <goal>testCompile </goal>
  30. </goals>
  31. <configuration>
  32. <args>
  33. <!--<arg>-make:transitive</arg>--> <!--scala2.11 netbean不支持这个参数-->
  34. <arg>-dependencyfile </arg>
  35. <arg>${project.build.directory}/.scala_dependencies </arg>
  36. </args>
  37. </configuration>
  38. </execution>
  39. </executions>
  40. </plugin>
  41. <!--manven打包插件-->
  42. <plugin>
  43. <groupId>org.apache.maven.plugins </groupId>
  44. <artifactId>maven-shade-plugin </artifactId>
  45. <version>2.4.3 </version>
  46. <executions>
  47. <execution>
  48. <phase>package </phase>
  49. <goals>
  50. <goal>shade </goal>
  51. </goals>
  52. <configuration>
  53. <filters>
  54. <filter>
  55. <artifact>*:* </artifact>
  56. <excludes>
  57. <exclude>META-INF/*.SF </exclude>
  58. <exclude>META-INF/*.DSA </exclude>
  59. <exclude>META-INF/*.RSA </exclude>
  60. </excludes>
  61. </filter>
  62. </filters>
  63. <transformers>
  64. <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  65. <resource>reference.conf </resource>
  66. </transformer>
  67. <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
  68. <mainClass>cn.itcast.rpc.Master </mainClass> <!--main方法-->
  69. </transformer>
  70. </transformers>
  71. </configuration>
  72. </execution>
  73. </executions>
  74. </plugin>
  75. </plugins>
  76. </build>

上面是使用Scala2.11的版本,注意scala2.11 netbean不支持这个参数-make:transitive这个参数,所以必须得注释掉

下面是简单的测试:



使用Maven进行jar依赖打包,之前使用Idea的artifacts进行打包,但是导出的jar有可能因为缺少某些信息而无法直接运行,但是使用maven自动的pakage便没有这个问题,而且jar包的大小明显小于artifacts的jar包大小,下面是使用方法


下载完相关的依赖后,会在target的目录下生成下项目的jar包


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Idea使用Maven编译scala和打包jar 的相关文章

  • 根据 Slick 中的 Id 选择单行

    我想根据 Id 查询用户的一行 我有以下虚拟代码 case class User id Option Int name String object Users extends Table User user def id column In
  • Spark Scala 相当于 SKEW 连接提示

    Spark SQL 有一个可用的倾斜提示 请参阅here https docs databricks com spark latest spark sql skew join html relation columns and skew v
  • 如何将句子拆分为多个空格分隔的单词?

    下面的代码 val sentence 1 2 3 4 split 给我 Array 1 2 3 4 但我只想说 Array 1 2 3 4 当单词之间有多个空格分隔时 如何分割句子 使用正则表达式 scala gt 1 2 3 split
  • 为什么 Scala 选项的 foreach 比 get 更好?

    为什么使用foreach map flatMap等被认为比使用更好get对于 Scala 选项 如果我使用isEmpty我可以打电话get安全 好吧 这又回到了 告诉 不要问 考虑这两行 if opt isDefined println o
  • scala 贷款模式,可选函数参数

    我有一个贷款模式 该模式应用函数 n 次 其中 i 是递增变量 偶尔 我希望传入的函数能够访问 i 但我不想要求传入的所有函数都需要定义一个参数来接受 i 下面的例子 def withLoaner n Int gt op Int gt St
  • 理解无形状的“单态”示例

    The 无形特征概述 https github com milessabin shapeless wiki Feature overview 3a shapeless 2 0 0显示以下示例 import poly choose is a
  • SBT:具有不同依赖项的两个 Scala 版本的交叉构建项目

    我有以下用例 我想为 scala 2 10 和 2 12 构建相同的 Scala 项目 这样做时 我想指定所提供的 2 10 版本的一些依赖项 而我希望将这些依赖项编译到 2 12 的 jar 中 我正在查看 SBT 的文档 发现如何分割b
  • Scala 中的类型安全原语

    我希望在我的 Scala 代码中拥有类型安全的原语 子类 而不会受到装箱性能的影响 对于延迟非常低的应用程序 例如 这样的事情 class Timestamp extends Long class ProductId extends Lon
  • 当我在 scala 中使用全局映射变量而不广播时会发生什么

    在 scala 中 当我在 scala 中使用全局映射变量而不进行广播时会发生什么 例如 如果我使用变量collect 例如collectAsMap 看来它是一个全局变量 我可以在所有地方使用它RDD mapValues 函数无需显式广播它
  • 获取 N 的素数列表

    我正在尝试编写一个函数 它接受一个 Int 并返回直到并包括该 Int 的所有素数 例如 8 的素数列表 List 3 5 7 这是我到目前为止所拥有的 def isPrime i Int Boolean if i lt 1 false e
  • 使用intellij Scala编译错误

    我正在尝试使用 intelliJ 14 1 4 编译混合 java scala 代码 但它一直给我这个错误 Error Compiling SBT component compiler interface 2 9 2 52 0 我尝试降级我
  • 将参数传递给 Scala 对象

    是否可以从外部对象初始化 Scala 对象 我尝试初始化的 Scala 对象没有任何 Companion 类 这是一个例子 object ObjectA val mongoDBConnectionURI This is the Val th
  • 使用 Akka 将文件从服务器流式传输到客户端

    基本上我想允许用户从服务器下载 csv 文件 假设服务器上已存在 CSV 文件 API 端点通过 GET export 公开 如何将文件从 Akka HTTP 服务器流式传输到客户端 这就是我到目前为止所拥有的 Service def ex
  • Scala“对象”的继承

    我有这个Java代码 class Super public static void foo bar public static void bar out println BAR public static void main String
  • scala 元组拆包

    我知道这个问题已经以不同的方式出现过很多次 但我仍然不清楚 有没有办法达到以下目的 def foo a Int b Int foo a b right way to invoke foo foo getParams is there a w
  • 在 Scala 中定义具有多个隐式参数的函数

    如何定义具有多个隐式参数的函数 def myfun arg String implicit p1 String implicit p2 Int doesn t work 它们必须全部放入一个参数列表中 并且该列表必须是最后一个 def my
  • 抽象类型与类型参数

    在什么情况下抽象类型应该优先于类型参数 添加到我的之前关于抽象类型与参数的回答 https stackoverflow com questions 1154571 scala abstract types vs generics 11547
  • 从单个字符串创建 Spark DataFrame

    我正在尝试采用硬编码字符串并将其转换为 1 行 Spark DataFrame 具有单列类型StringType 这样 String fizz buzz 将得到一个 DataFrame 其 show 方法如下 fizz buzz 迄今为止我
  • JavaFX 控制器如何访问其他服务?

    我将 JavaFX 2 与 Scala 一起使用 我有class Application extends javafx application Application它执行诸如读取应用程序配置等操作 然后它会启动主窗口 该主窗口需要连接到一
  • 如何在 Scala 中跳过可选参数?

    给定以下带有可选参数的函数 def foo a Int 1 b Int 2 c Int 3 我想保留默认值a但将新值传递给b and c仅通过位置赋值 而不是通过命名赋值 即以下任何语法都可以 foo 5 7 foo 5 7 Scala 可

随机推荐

  • whl文件安装方法

    whl格式本质上是一个压缩包 里面包含了py文件 以及经过编译的pyd文件 使得可以在不具备编译环境的情况下 选择合适自己的python环境进行安装 问题描述 whl下载了后不会安装 解决方法 1 把下载的文件拖到桌面 2 进入cmd命令行
  • Qt教程一

    文章目录 Qt是什么 Qt 可以做什么 Qt 的辛酸史 Qt 和 KDE GPL 和 LGPL 如何选择开源协议 2 为什么用Qt Qt 和 MFC 3 Qt Creator 安装之后添加组件 编码问题 主界面 创建项目 项目文件 main
  • 记常用Ubuntu命令

    Ubuntu 服务器 sudo i 切换到root用户 sudo lsof i 8080 查看8080端口是否被占用以及pid sudo kill 9 pid 通过pid关闭指定服务进程 docker ps 查看docker镜像相关信息 d
  • python统计excel某一列不同类别数量

    功能 某一列 比如病例类型 数据含有多种类别 比如 死亡 存活 失访 三种类别 取值 用python实现统计出这三种类别的数量 输入 xlsx文件 含有病例类型这一列row 4 数据含有 死亡 存活 失访 三种类别取值 输出 三种类别的数量
  • 二叉树链式存储结构代码实现

    上一篇博客已经介绍过实际内容了 这一篇直接上干货代码了 结构体 前面写的是用c语言写的 用的也是递归的方法 typedef char BTDataType typedef struct BTNode struct BTNode left s
  • 给数组元素指定位置排序方法

    调整数组选项 梨子 香蕉 苹果 selectSort gt let finalData const arr name 苹果 code apple name 梨子 code pear name 香蕉 code banana 原数据 const
  • office全家桶_大学新生必备!Adobe+Office全家桶免费拿。

    做最有趣有料的科技自媒体 数一数手指 还有几天就要开学了 各 位准大学生们听我 说 作为曾经的 学长 我很有必要告诉你们一些来自大学的 潜规则 你迟早有一天会用到电脑里装的Adode和offic的软件 Adobe和 office 的软件可以
  • Android 自定义属性,自定义控件、自定义View以及View的常见Error

    Android 自定义属性 自定义控件 自定义View以及View的常见Error View GONE 不占据layout 但是对象还是存在 资源还是占用的 View INVISIBLE 占据layout 对象还是存在 资源还是占用的 只是
  • Java开发代码规范之异常日志(二)——日志规约

    文章通过学习 阿里巴巴Java开发手册 整理 1 应用中不可直接使用日志系统 Log4j Logback 中的API 而应依赖使用日志框架SLF4J中的API 使用门面模式的日志框架 有利于维护和各个类的日志处理方式统一 import or
  • 【华为OD机试】不开心的小朋友(C++ Python Java)2023 B卷

    时间限制 C C 1秒 其他语言 2秒 空间限制 C C 262144K 其他语言524288K 64bit IO Format lld 题目描述 游乐场里增加了一批摇摇车 非常受小朋友欢迎 但是每辆摇摇车同时只能有一个小朋友使用 如果没有
  • 信号与系统——初识到理解(第五章——傅立叶变换的应用)

    目录 第五章 傅立叶变换的应用 信号与系统的时频域特性 5 1 傅立叶变换的模和相位表示 5 2 无失真传输系统 讨论连续情况 离散时足以整数约束即可 5 3 系统相位 5 4 群时延 采样 5 5 通信中对信号的加工 5 6 冲击串采样
  • SM2可以使用私钥加密吗

    是的 SM2可以使用私钥加密 SM2是一种非对称加密算法 它使用公钥和私钥对数据进行加密和解密 私钥是保存在本地的密钥 只有拥有私钥的人才能使用它来加密数据或对已加密的数据进行解密 SM2的私钥加密功能可以用来保护数据的安全性 防止数据在传
  • 文件上传漏洞

    文件上传 文件上传是现代互联网常见的功能 允许用户上传图片 视频 及其他类型文件 向用户提供的功能越多 Web受攻击的风险就越大 文件上传漏洞 上传文件时 如果未对上传的文件进行严格的验证和过滤 就容易造成文件上传漏洞 上传脚本文件 包括a
  • 大数据学习01 -Linux 的简单使用

    1 NAT 网络地址转换 默认使用VMnet8 1 原理 子网掩码 和IP进行与操作 可以得到对应的子网IP 在那个网段上 IP 哪台机制 网关 路由器的IP dns 去dbs服务器查找域名对应的IP 常用命令 修改主机名 vi etc s
  • 13.罗马数字转整数

    这题转成字符数组后遍历就是了 罗马数字包含以下七种字符 I V X L C D 和 M 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如 罗马数字 2 写做 II 即为两个并列的 1 12 写做 X
  • 2023华为OD机试 报数游戏(Python)

    题目 输入 输入一个整数 n 代表有多少人 n 小于 1000 输出 告诉我最后剩下的那个人原来是第几个 示例 输入 2 输出 2 解释 两人围成一圈 第一个人数到3就走了 所以最后剩的是第二个人 理解 想象这样一个游戏 大家围成一圈 从第
  • C++:sort函数

    sort函数用于C 中 对给定区间所有元素进行排序 默认为升序 也可进行降序排序 sort函数进行排序的时间复杂度为n log2n 比冒泡之类的排序算法效率要高 使用sort函数要包含头文件为 include
  • Nginx实现四层代理与七层代理

    目录 一 实验环境准备 1 准备三台服务器 2 安装nginx环境 3 启动nginx环境 二 设置Nginx七层代理 1 proxy代理服务器配置 轮询 2 设置加权轮询 3 健康检测功能 4 解决重复登录问题 源地址哈希ip hash
  • 透视投影

    11
  • Idea使用Maven编译scala和打包jar

    下面Maven的pom文件