Eclipse 插件開發中,將第三方庫 (如 DbUtils、Log4j) 封裝為標準 Bundle 並附帶源碼插件,是構建企業級目標平台、實現團隊統一開發環境的關鍵步驟。本文以 commons-dbutils-2.4.4 為例,演示完整構建流程。
File → New → Plug-in Project,ID: com.example.commons.dbutils,取消「Generate activator」lib/,複製 commons-dbutils-2.4.4.jarlib/commons-dbutils-2.4.4.jarorg.apache.commons.dbutils 等需對外暴露的包2.4.4 (與庫版本一致)Apache Commons DbUtilsApache Software FoundationExport → Plug-in Development → Deployable plug-ins and fragments → 目錄模式 → 輸出至本地倉庫commons-dbutils-2.4.4-sources.jar,解壓重打包為 commons-dbutils-2.4.4-src.zip (首層直接是包目錄)com.example.commons.dbutils.source (慣例: .source 後綴)com.example.commons.dbutils.source/
└── src/
└── com.example.commons.dbutils_2.4.4/
└── lib/
└── commons-dbutils-2.4.4-src.zip
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
src/com.example.commons.dbutils_2.4.4/
Bundle-SymbolicName: com.example.commons.dbutils.source
Bundle-Version: 2.4.4
Eclipse-SourceBundle: com.example.commons.dbutils;version="2.4.4";roots:="."
# 建立 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
MANIFEST.MF → Dependencies → Add → com.example.commons.dbutilsF3 跳轉至 QueryRunner 顯示源碼與 JavaDoc<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-packaging-plugin</artifactId>
<version>2.7.0</version>
<configuration>
<sourceReferences>
<generate>true</generate>
</sourceReferences>
</configuration>
</plugin>
org/apache/commons/dbutils/),不能多層嵌套掌握此流程,即可將任意第三方庫標準化為 Eclipse Bundle,構建團隊統一、可追溯、源碼可調試的開發基礎設施。
