你使用的是 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!
這就是 企業級組件化開發 的標準做法!