首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Eclipse 插件化開發實戰:從第三方 JAR 到源碼附件插件的構建與發布

     編輯:Java 相關知識

Eclipse 插件開發中,將第三方庫 (如 DbUtils、Log4j) 封裝為標準 Bundle 並附帶源碼插件,是構建企業級目標平台、實現團隊統一開發環境的關鍵步驟。本文以 commons-dbutils-2.4.4 為例,演示完整構建流程。

第一階段:構建庫插件

  1. 新建 Plugin Project:File → New → Plug-in Project,ID: com.example.commons.dbutils,取消「Generate activator」
  2. 放置 JAR:項目根目錄建 lib/,複製 commons-dbutils-2.4.4.jar
  3. 配置 MANIFEST.MF (Runtime 頁籤):
    • Classpath → Add → 選中 lib/commons-dbutils-2.4.4.jar
    • Exported Packages → Add → 勾選 org.apache.commons.dbutils 等需對外暴露的包
  4. 完善元數據 (Overview 頁籤):
    • Version: 2.4.4 (與庫版本一致)
    • Bundle-Name: Apache Commons DbUtils
    • Bundle-Vendor: Apache Software Foundation
  5. 導出:右鍵項目 → Export → Plug-in Development → Deployable plug-ins and fragments → 目錄模式 → 輸出至本地倉庫

第二階段:構建源碼附件插件

  1. 獲取源碼包:從 Maven Central 下載 commons-dbutils-2.4.4-sources.jar,解壓重打包為 commons-dbutils-2.4.4-src.zip (首層直接是包目錄)
  2. 新建 Source Plugin Project:ID: com.example.commons.dbutils.source (慣例: .source 後綴)
  3. 目錄結構:
    com.example.commons.dbutils.source/
    └── src/
        └── com.example.commons.dbutils_2.4.4/
            └── lib/
                └── commons-dbutils-2.4.4-src.zip
  4. 配置 build.properties:
    source.. = src/
    output.. = bin/
    bin.includes = META-INF/,\
                   src/com.example.commons.dbutils_2.4.4/
  5. MANIFEST.MF 關鍵屬性:
    Bundle-SymbolicName: com.example.commons.dbutils.source
    Bundle-Version: 2.4.4
    Eclipse-SourceBundle: com.example.commons.dbutils;version="2.4.4";roots:="."
  6. 導出:同庫插件,輸出至同一倉庫目錄

第三階段:發布至團隊共享倉庫 (p2 Repository)

# 建立 p2 索引
java -jar plugins/org.eclipse.equinox.launcher_*.jar \
  -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher \
  -metadataRepository file:/shared/repo \
  -artifactRepository file:/shared/repo \
  -source /path/to/exported/plugins \
  -compress -publishArtifacts

驗證與使用

  1. 目標平台添加該 p2 倉庫
  2. 新專案 MANIFEST.MF → Dependencies → Add → com.example.commons.dbutils
  3. Java 編輯器中 F3 跳轉至 QueryRunner 顯示源碼與 JavaDoc

自動化構建 (Tycho/Maven) 範例

<plugin>
  <groupId>org.eclipse.tycho</groupId>
  <artifactId>tycho-packaging-plugin</artifactId>
  <version>2.7.0</version>
  <configuration>
    <sourceReferences>
      <generate>true</generate>
    </sourceReferences>
  </configuration>
</plugin>

避坑清單

  • 版本號不一致:Bundle-Version 必須與庫版本、源碼插件版本、Eclipse-SourceBundle 引用版本三者完全一致
  • 源碼 ZIP 結構錯誤:解壓後首層必須是包目錄 (如 org/apache/commons/dbutils/),不能多層嵌套
  • 未導出包:Runtime → Exported Packages 未勾選,導致下游插件編譯報錯「package not visible」
  • 缺少 Eclipse-SourceBundle:源碼插件 MANIFEST 缺少此屬性,Eclipse 無法自動關聯源碼

掌握此流程,即可將任意第三方庫標準化為 Eclipse Bundle,構建團隊統一、可追溯、源碼可調試的開發基礎設施。

Source not found 提示示例 MANIFEST.MF Runtime 頁籤配置 MANIFEST.MF Overview 頁籤元數據 源碼插件項目結構 源碼 ZIP 內部結構

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved