当前位置: 首页 > news >正文

(利用IDEA+Maven)定制属于自己的jar包

在日常的Java开发中,我们有时候会想定制属于自己的jar包:

我们提前写好一些工具类的代码,然后在想使用的时候就把自己的jar包导入。

下面我将介绍如何创建属于自己的jar包。


环境:IDEA+Maven开发环境

实现思路:我们将在IDEA中创建两个Maven工程:A_utils 和 B_comply。其中A_utils是一个工具类,接下来我们将要把A_utils项目打包成一个jar包,然后在B_comply项目中引入并使用。


项目开始:

首先,我们创建了一个工程A_utils,可以看到我们只在其中定义了一个类PrintUtils,类中只有一个简单的静态方法:echo( )——负责打印一句话。

接下来利用Maven的功能将它打包为jar包。

选择IDEA右边的Maven,点击Maven生命周期控制器–Lifecyccle,执行package操作。(注意,如果是初次执行Package操作,则IDEA会自动连接网络去下载一些必要的组件,等待一分钟左右即可)

接下来IDEA的控制台将会提示我们打包已经完成,并且返回给我们一个本地地址。

我们按照上面那个地址,在文件系统中把生成的 jar包选中,拷贝。

至此,我们就已经成功的把 A_utils项目打包成了一个可复用的 jar包。


接下来我们创建第二个工程B_comply ,将刚才所拷贝的 jar包直接粘贴在当前项目的resources目录下。

然后我们在B_comply项目中导入依赖:

选择File — Project Structure — Libraries — 添加新的jar包依赖

选中我们刚刚拷贝进来的 jar包,点击OK。

jar包导入完毕。


接下来就是测试环节了!!!

我们直接在B_comply项目中调用A_utils中的静态方法echo( )试试看。

// 测试 jar包导入是否成功
public class Test {
    public static void main(String[] args) {
       
        PrintUtils.echo();  // A_utils项目中的echo()静态方法

    }
}

可以观察到控制台直接打印出信息,我们定制的专属 jar包已经成功导入了项目B_comply。

相关文章:

  • OpenCV dnn模块 分类模型Resnet50 OpenCV dnn模块部署 .onnx模型
  • MySQL入门 - 数据分组之 group by
  • 拼多多分类ID搜索商品数据分析接口(商品列表数据,商品销量数据,商品详情数据)代码对接教程
  • CEO问CIO:数字化运营到底要解决什么问题?
  • 3.16 haas506 2.0开发教程-example-JC035串口屏
  • DPDK的VFIO
  • 重要?2022年第二批四川省工程技术研究中心组织申报条件、时间、奖励及流程
  • 【老王读Spring Transaction-1】从EnableTransactionManagement顺藤摸瓜,研究@Transactional的实现原理
  • Caddy是什么
  • 脐带间充质干细胞
  • 取暖器遇上智能化!一张床如何分区温控,节能又好用
  • w字符编码
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现
  • 【CSAPP】深入理解计算机系统 第九章 虚拟内存 动态链接 printf 17/26
  • 软文营销评论区怎样营造好的氛围?
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Angular 2 DI - IoC DI - 1
  • C语言笔记(第一章:C语言编程)
  • oschina
  • Theano - 导数
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 大快搜索数据爬虫技术实例安装教学篇
  • 给新手的新浪微博 SDK 集成教程【一】
  • 基于遗传算法的优化问题求解
  • 蓝海存储开关机注意事项总结
  • 排序(1):冒泡排序
  • 微信小程序设置上一页数据
  • 线上 python http server profile 实践
  • 一起参Ember.js讨论、问答社区。
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #14vue3生成表单并跳转到外部地址的方式
  • #pragma multi_compile #pragma shader_feature
  • (02)vite环境变量配置
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (done) 两个矩阵 “相似” 是什么意思?
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (二)JAVA使用POI操作excel
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (算法)N皇后问题
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转)socket Aio demo
  • (转)项目管理杂谈-我所期望的新人
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET Core跨平台微服务学习资源
  • .NET 命令行参数包含应用程序路径吗?
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .NET构架之我见
  • .NET命令行(CLI)常用命令
  • .NET企业级应用架构设计系列之开场白