包管理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

优点

自动下载最新框架

记录当前程序对哪些组件有依赖

包管理软件

JavaMaven / Gradle / SBT
JavaScriptnpm / yarn
SwiftCocoaPod / Swift Package Manager
Pythonpip / conda

ZZAX 微信公众

文档一更新,立刻告诉你