1

ターゲット プラットフォームで利用できない plugin.xml で拡張ポイントを定義したいと考えています。利用可能な場合にのみ利用したいので、これは私にとっては問題ありません。

ただし、追加すると、Eclipseはエラーでフラグを立てます

不明な拡張ポイント: 'org.eclipse.ui.trace.traceComponents'

この拡張ポイントをオプションとしてマークすることはできますか? ワークスペースごとまたはプロジェクトごとに未解決の拡張ポイントの重大度を下げることができることはわかっていますが、1 つのエラーだけではそうしません。

完全な plugin.xml は次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>

   <extension
         id="org.apache.sling.slingclipse.preferences"
         name="Slingclipse Preferences"
         point="org.eclipse.ui.preferencePages">
      <page
            name="Slingclipse"
            class="org.apache.sling.slingclipse.preferences.SlingclipsePreferencePage"
            id="org.apache.sling.slingclipse.preferences.defaultPreferences">
      </page>
   </extension>
   <extension
         point="org.eclipse.core.runtime.preferences">
      <initializer
            class="org.apache.sling.slingclipse.preferences.PreferenceInitializer">
      </initializer>
   </extension>
   <extension
         point="org.eclipse.ui.startup">
      <startup
            class="org.apache.sling.slingclipse.SlingclipseStrartup">
      </startup>
   </extension>
   <extension
         point="org.eclipse.ui.importWizards">
      <category
            id="org.apache.sling.slingclipse.ui.wizards.sampleCategory"
            name="Sling">
      </category>
      <wizard
            category="org.apache.sling.slingclipse.ui.wizards.sampleCategory"
            class="org.apache.sling.slingclipse.ui.wizards.ImportWizard"
            icon="icons/sample.gif"
            id="org.apache.sling.slingclipse.ui.wizards.ImportWizard"
            name="Import from Repository">
         <description>
            Import a file from the local file system into the workspace.
         </description>
      </wizard>
   </extension>
   <extension
         point="org.eclipse.ui.trace.traceComponents">
      <component
            id="org.eclipse.ui.trace.tracingPrefPage"
            label="Slingclipse">
         <bundle
               name="org.apache.sling.slingclipse"></bundle>
      </component>
   </extension>
</plugin>
4

1 に答える 1

1

ここでは、開発時間と実行時間という 2 つの概念が混在しています。

拡張ポイントは、開発時に宣言される依存関係です。したがって、開発時ターゲット プラットフォームでその拡張ポイントを定義するプラグインが必要です。しかし、その通りです。一般に、その拡張ポイントを拡張するためのマニフェスト XML を使用可能にせずに記述できます。実際には、多くの拡張ポイントが (存在しない) プラグインでも定義されているインターフェースを実装する必要があるため、これはうまく機能しません。

機能をユーザーにとってオプションにする (また、ユーザーに定義プラグインを強制しないようにする) には、プラグインのインストールをオプションにする必要があります。しかし、それはマニフェストや拡張ポイントの使用とはまったく関係ありません。たとえば、プラグインを含む機能を宣言し、その機能が拡張ポイントを定義するプラグインを含む機能に依存するようにする必要があります。

于 2012-11-01T19:08:31.010 に答える