包管理Package Management
背景
基于 别人的代码
我们不可能所有的代码都自己写
str.indexOf("ZZAX"); System.out.println(str);
大型 SDK
Java SDK 里面已经有很几乎所有你需要用的到类
但是依然有一些设计过时,或者有些需求 SDK 中并没有给出比较好的处理工具
三方贡献 代码
比如 JS / Python 官方并没有很健全的 SDK。
很多开发者 自发自愿 为 JS 去 写 通用代码
代码分享
如何分享代码
1. 直接复制粘贴共享代码
2. 使用人工导包共享代码
3. 使用包管理工具共享代码
直接复制粘贴 共享代码
问题
1. 引用时过于复杂
2. 代码更新时,需要重新复制粘贴代码
3. 源代码暴露
使用人工导包 共享代码
Jar 包
一个压缩包,里面有编译后的 .class 文件
但是不运行
生产部分代码
新建项目
03_jar
1 2 3 4 5 public class Dice { public static int roll(int max) { return (int)(Math.random() * max) + 1; }}
导出
配置 jar 导出
左上角项目点击 右键
看到

往下 看到

点击 Open Module Settings
你会看到 一个弹出的窗口
左侧点击 Artifacts
找到 +
点击 + > Jar > Empty

看到

Name 处 填写 dice
找到 +

点击 + > module output
看到

点击 ok
看到

点击 ok
导出
点击 菜单下的 Build > Artifacts > Build
检查 out/artifacts/dice
下 是否有 jar 包
导入
新建项目
04_lib
1. 拷贝 jar 文件
项目名字部分 点击右键
点击 New > Directory
看到窗口
填写 lib
点击 Ok
将 jar 文件 拷贝到 lib 文件夹下
2. 导入 jar
项目 点击 右键

往下看

点击 Open Module Settings
看到

确认目前为 Modules > 04_lib > Dependencies
点击 下方 + > jar

找到 在 lib 文件下的 dice.jar 文件
点击 Ok
点击 Ok
使用导入代码
1 2 3 4 5 6 7 import io.zzax.game.Dice; public class Lottery { public static void main(String[] args) { System.out.println(Dice.roll(6)); }}
使用包管理工具 共享代码
背景
当 供应方 更新代码,就需要重新下载,复制粘贴。
类似 当 QQ 出现新版本,就得重新下载,安装
希望有个 软件管家,自动检测版本更新,自动下载新版本的 jar
Maven
是什么
Java 下的 依赖管理 解决方案 之一
(Package / Module)Dependencies Management
优点
自动下载最新框架
记录当前程序对哪些组件有依赖
包管理软件
Java | Maven / Gradle / SBT |
---|---|
JavaScript | npm / yarn |
Swift | CocoaPod / Swift Package Manager |
Python | pip / conda |