idea将服务封装为一个jar包

你使用的是 IntelliJ IDEA 2018 ,这个版本虽然不是最新的,但完全支持通过 图形化界面 打 JAR 包(无需命令行),非常适合你在公司内部将 Snowflake 模块打包成通用组件。

下面我将 手把手、一步一步、图文流程式地教你 ,如何在 IDEA 2018 中把你的 Snowflake 模块打包成一个 .jar 文件。


✅ 目标:用 IDEA 2018 图形化打 JAR 包

🎯 最终产出:一个类似 snowflake-id-generator-1.0.jar 的文件,别人引入就能用!


🧱 前提条件

确保你的项目结构如下:

复制代码
MySnowflakeProject/
├── src/
│   └── main/
│       └── java/
│           └── com/example/snowflake/
│               ├── SnowflakeIdGenerator.java
│               ├── SnowflakeProperties.java
│               └── SnowflakeAutoConfiguration.java
├── resources/
│   └── META-INF/
│       └── spring.factories   ← 关键!自动配置入口
└── pom.xml                    ← Maven 项目

✅ 确保 spring.factories 内容正确:

复制代码
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.example.snowflake.SnowflakeAutoConfiguration

🖱️ 第一步:打开 Project Structure

  1. 在 IDEA 2018 中打开你的项目

  2. 点击顶部菜单:File → Project Structure...

    (快捷键:Ctrl + Alt + Shift + S

    (示意图:菜单位置)


🖱️ 第二步:进入 Artifacts 配置

  1. 在弹出的窗口左侧,选择 Artifacts

  2. 你会看到一个空列表,点击右边的 + 号(绿色加号)

  3. 选择:JAR → From modules with dependencies...


🖱️ 第三步:配置 JAR 打包参数

弹出窗口如下:

1. 选择 Module

  • 在下拉框中选择你的模块,例如:MySnowflakeProject.main

如果没看到,说明模块没被识别,先确认 pom.xml 是否已正确导入(右键 → Maven → Reload Project)

2. Main Class(可选)

  • 因为我们是 库(Library) ,不是可运行程序,所以这里不需要填
  • 你可以留空,或者取消勾选 "Main class"

3. 重要:勾选 "Include in project build"

✅ 务必勾上这一项!

表示你可以通过菜单 Build → Build Artifacts 来打包

4. Output directory(输出路径)

  • 默认是 out/artifacts/...

  • 你可以点击旁边的文件夹图标,自定义输出路径 ,比如:

    复制代码
    D:\company-jars\snowflake-id-generator.jar

点击 OK → 再点击右下角 ApplyOK


🖱️ 第四步:构建 JAR 包(点鼠标就行)

  1. 菜单栏:Build → Build Artifacts

  2. 在子菜单中选择你刚创建的 Artifact,例如:

    复制代码
    Build 'MySnowflakeProject:jar' → Rebuild

    (第一次用 Rebuild,之后改代码再用 Build)

  3. 等待几秒钟,底部状态栏会显示:

    复制代码
    Build artifact MySnowflakeProject:jar: SUCCESS

✅ 成功了!


📦 第五步:找到生成的 JAR 文件

去你刚才设置的输出目录找,比如:

复制代码
D:\company-jars\MySnowflakeProject.jar

你可以把它重命名为更友好的名字,比如:

复制代码
snowflake-id-generator-1.0.jar

📥 第六步:在其他项目中使用这个 JAR

方法一:本地依赖引入(适合测试、小团队)

步骤 1:把 JAR 放到目标项目的 lib 目录

比如在另一个 Spring Boot 项目中:

复制代码
order-service/
├── src/
├── pom.xml
└── lib/
    └── snowflake-id-generator-1.0.jar
步骤 2:修改 pom.xml
复制代码
<dependency>
    <groupId>com.company</groupId>
    <artifactId>snowflake-starter</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/snowflake-id-generator-1.0.jar</systemPath>
</dependency>
步骤 3:刷新 Maven

右键 pom.xmlMaven → Reload Project

✅ 你会在 External Libraries 中看到这个 JAR

步骤 4:使用
复制代码
@Autowired
private SnowflakeIdGenerator idGenerator;

public void createOrder() {
    long id = idGenerator.nextId();
}

方法二:安装到本地 Maven 仓库(推荐,便于管理)

虽然你说不用命令行,但这个命令非常简单,只需执行一次:

复制代码
mvn install:install-file ^
  -Dfile=D:\company-jars\snowflake-id-generator-1.0.jar ^
  -DgroupId=com.company ^
  -DartifactId=snowflake-starter ^
  -Dversion=1.0 ^
  -Dpackaging=jar

然后在其他项目中就可以像普通依赖一样用了:

复制代码
<dependency>
    <groupId>com.company</groupId>
    <artifactId>snowflake-starter</artifactId>
    <version>1.0</version>
</dependency>

⚠️ 常见问题(IDEA 2018 特有)

问题 解决方法
❌ 找不到 spring.factories 检查 resources/META-INF/ 是否被正确包含 → 在 Artifact 配置中确认 resources 被打包进去
❌ 打包后没有 .class 文件 确保项目已编译(Build → Build Project)
Build Artifacts 菜单灰色 检查是否成功创建了 Artifact,且项目没有错误
❌ 依赖没打进去 如果你想打包所有依赖(fat jar),需要额外配置,但我们这里是只打包自己的代码,依赖由使用者引入

✅ 总结:IDEA 2018 打 JAR 包流程(5步)

步骤 操作
1️⃣ File → Project Structure → Artifacts → + → JAR → From modules...
2️⃣ 选择模块,不填 Main Class,勾选 Include in project build
3️⃣ 设置输出路径(如 D:\jars\
4️⃣ Build → Build Artifacts → Rebuild
5️⃣ 去输出目录拿 JAR,分发给团队使用 ✅

🎯 最终效果

任何一个同事拿到这个 JAR,引入项目,配置一下 application.yml,就能直接用 @Autowired SnowflakeIdGenerator 生成唯一 ID!

这就是 企业级组件化开发 的标准做法!