1

Javaのコンテキストでは、「プラグイン」と「外部jar/サードパーティライブラリ/外部依存関係などの間に概念上の違いはありますか?

質問の当然の結果は次のとおりです。Eclipseでプラグインをダウンロードして「インストール」するとき、.pluginディレクトリにjarをコピーする以外に何かしますか?

4

1 に答える 1

1

Eclipse プラグインがプラグMANIFEST.MFインとして認識されるには、 に多数のエントリが含まれている必要があります。これらは、プラグインの名前とバージョン、および必要な他のプラグインのリストとその他の多数の値を示します。

plugin.xmlプラグインには、プラグインが使用する Eclipse 拡張ポイントを定義するも含まれている場合があり、新しい拡張ポイントを宣言する場合もあります。

Eclipse プラグインは jar ファイルである必要はありません。同等のディレクトリ構造でもかまいません。

Eclipse がプラグインをインストールするとき、MANIFEST.MF および plugin.xml から情報を取得して、拡張ポイントのコントリビューション、各プラグインのクラスパスなどの内部テーブルを更新します。

新しい拡張ポイントを宣言し、既存のものを使用する plugin.xml の例:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
   <extension-point id="editor" name="%extension-point.name" schema="schema/editor.exsd"/>
   <extension
         id="coreFragment"
         point="org.eclipse.e4.workbench.model">
      <fragment
            uri="fragment.e4xmi">
      </fragment>
   </extension>
</plugin>

例 MANIFEST.MF

Manifest-Version: 1.0
Export-Package: greg.music.core.common,greg.music.core.e4util,greg.mus
 ic.core.editor,greg.music.core.preferences,greg.music.core.progress,g
 reg.music.core.services,greg.music.core.showin,greg.music.core.util,g
 reg.music.core.views,greg.music.core.xml
Service-Component: OSGI-INF/playerStateService.xml,OSGI-INF/preference
 Settings.xml,OSGI-INF/extensionFactory.xml
Bundle-ActivationPolicy: lazy
Bundle-Name: %Bundle-Name
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Require-Bundle: org.eclipse.core.runtime,greg.music.forms;bundle-versi
 on="1.0.0",greg.music.parts;bundle-version="1.0.0",greg.music.annotat
 ions;bundle-version="1.0.0",javazoom.jlgui.basicplayer;bundle-version
 ="1.6.0",org.eclipse.jface;bundle-version="3.8.101",org.eclipse.e4.co
 re.contexts;bundle-version="1.1.0",org.eclipse.e4.core.commands;bundl
 e-version="0.10.1",org.eclipse.e4.core.di;bundle-version="1.1.0",org.
 eclipse.e4.core.services;bundle-version="1.0.0",org.eclipse.e4.ui.mod
 el.workbench;bundle-version="0.10.1",org.eclipse.e4.ui.workbench;bund
 le-version="0.11.0",org.eclipse.e4.ui.services;bundle-version="0.10.3
 ",com.ibm.icu;bundle-version="4.4.2",org.eclipse.emf.common;bundle-ve
 rsion="2.9.0",org.eclipse.emf.ecore;bundle-version="2.9.0",org.eclips
 e.e4.ui.css.swt.theme;bundle-version="0.9.100",org.eclipse.e4.ui.di;b
 undle-version="1.0.0",org.joda.time;bundle-version="2.3.0",com.google
 .guava;bundle-version="14.0.1"
Bundle-Vendor: %Bundle-Vendor
Bundle-Version: 1.0.0.201310241930
Bundle-ManifestVersion: 2
Bundle-Activator: greg.music.core.Activator
Import-Package: javax.annotation;version="1.0.0",javax.inject;version=
 "1.0.0"
Bundle-SymbolicName: greg.music.core;singleton:=true
于 2013-10-24T21:00:52.930 に答える