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
在 IDEA 2018 中打开你的项目
点击顶部菜单:File → Project Structure...
(快捷键:Ctrl + Alt + Shift + S
)
(示意图:菜单位置)
🖱️ 第二步:进入 Artifacts 配置
在弹出的窗口左侧,选择 Artifacts
你会看到一个空列表,点击右边的 + 号(绿色加号)
选择: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 → 再点击右下角 Apply → OK
🖱️ 第四步:构建 JAR 包(点鼠标就行)
菜单栏:Build → Build Artifacts
在子菜单中选择你刚创建的 Artifact,例如:
Build 'MySnowflakeProject:jar' → Rebuild
(第一次用 Rebuild,之后改代码再用 Build)
等待几秒钟,底部状态栏会显示:
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.xml
→ Maven → 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!
这就是 企业级组件化开发 的标准做法!