使用 IntelliJ IDEA Maven 创建包含部分类和依赖库的 Java/Kotlin 程序包

问题起因

本人在 Windows 上用 IDEA 编写一个简单的 Kotlin 程序,其中需要用 Jsoup 等库。该程序将拷贝到服务器上运行。由于服务器环境没有 Jsoup 等库,我希望在 Windows 上完成程序的打包,并把 Jsoup 等库包含到生成的 Jar 内,以此实现在另一环境顺利运行。

参考配置

在此列出我的软件版本和配置。如果你的版本跟我不一样,那么后续过程或许会有差别(会差多少我也不知道捏……)。

IDE: IntelliJ IDEA 2022.1 Community
项目配置:Kotlin Maven
Java 运行时环境:Java 17

操作步骤

在 pom.xml 加入依赖

首先,需要在 pom.xml 文件内加入依赖。本例中需要使用 Jsoup 和 Kotlinx Coroutines 库,因此加入如下内容:

<!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.14.3</version>
</dependency>


<!-- https://mvnrepository.com/artifact/org.jetbrains.kotlinx/kotlinx-coroutines-core -->
<dependency>
    <groupId>org.jetbrains.kotlinx</groupId>
    <artifactId>kotlinx-coroutines-core</artifactId>
    <version>1.6.1</version>
    <type>pom</type>
</dependency>

构建一次项目

在这里插入图片描述
使用 Build -> Build Project 完成一次构建,生成 class 文件。
class 文件默认在 target 目录下。

编辑项目结构

在这里插入图片描述
前往 File -> Project Structure


在这里插入图片描述
依次点击 Artifacts+JAREmpty


之后,你会看到下方界面:
在这里插入图片描述
Name 位置可以设置包的名称。
下方两栏中,左边是打包之后包里的内容,右边是可以选的库。


我们先把库加入进去。
在这里插入图片描述

在右边列表内找到需要添加的库,右键,选择 Extract Into Output Root。如此,该库将被打包到我们的程序包文件中。


我们将 Kotlin 运行库、Jsoup和Kotlin协程库添加到打包目标内,得到如下图所示:
在这里插入图片描述


然后,我们要将我们自己的程序包包含进来。我们按照自己的软件包结构创建文件夹。由于我的程序包结构很简单,两个 kt 文件的包都设的是 tjnewssearchengine,我只需要创建一个文件夹即可。
在这里插入图片描述
创建完毕如下图所示:
在这里插入图片描述


接下来,将我们的程序生成的 class 文件包含进来。
文件位于 taregt 路径下。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
添加完毕,选择这个文件夹,点击上方的向上按钮将它移动到最开头的位置。


当然,我们的程序可能包含 main 函数。需要指定它的位置。
指定 main 的位置,相当于指定 MANIFEST.MF 的位置。我们先要创建该文件,在文件内设置 main 函数位置信息,然后就像添加 class 文件一样,将它添加到 META-INF 文件夹内。
添加次文件的过程可以简化:点击左栏最上面那个 .jar 文件,下方会出现 Manifest File 选择框。用它选中我们的 MANIFEST.MF 文件即可。
在这里插入图片描述

打包

点击右下角 Ok 保存配置。在 IntelliJ IDEA 的 Build 菜单内选择 Build Artifacts,在弹出菜单中选择我们刚创建的结构,并点击 Build。稍等片刻,即可完成打包。
在这里插入图片描述
生成的 Jar 文件位于 out/artifacts 目录内。该包基于我们选中的类构建,并已包含我们的项目需要的依赖库。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值