提供从Eclipse插件到工作区的库

时间:2012-04-14 12:54:20

标签: eclipse junit eclipse-plugin

JUnit做同样的事情,我无法弄清楚如何......

Eclipse junit quick fix

我猜那是因为属性>中的这个条目Java构建路径>图书馆>添加库向导:

Eclipse junit add library

如何从我的插件中将此库包含在此向导中,即将其提供给工作区中的用户?

2 个答案:

答案 0 :(得分:3)

好的,您需要查看三个不同的扩展点。最简单的方法是查看JUnit插件本身(有四个)

org.eclipse.jdt.junit: git://dev.eclipse.org/org.eclipse.jdt/org.eclipse.jdt.junit.git
org.eclipse.jdt.junit.core: git://dev.eclipse.org/org.eclipse.jdt/org.eclipse.jdt.junit.core.git
org.eclipse.jdt.junit.runtime: git://dev.eclipse.org/org.eclipse.jdt/org.eclipse.jdt.junit.runtime.git
org.eclipse.jdt.junit4.runtime: git://dev.eclipse.org/org.eclipse.jdt/org.eclipse.jdt.junit4.runtime.git

因此,您可以调查JUnit插件,但这些是您需要的扩展点:

对于添加库,请查看扩展点org.eclipse.jdt.ui.classpathContainerPage。从JUnit plugin.xml:

<extension point="org.eclipse.jdt.ui.classpathContainerPage">
  <classpathContainerPage
        name="%JUnitContainerName"
        class="org.eclipse.jdt.internal.junit.buildpath.JUnitContainerWizardPage"
        id="org.eclipse.jdt.junit.JUNIT_CONTAINER">
  </classpathContainerPage>
</extension>

所以这被实现为JUnitContainerWizardPage。这扩展了IClasspathContainerPageIClasspathContainerPageExtension

对于quickfix和classpathfix,请参阅扩展点org.eclipse.jdt.ui.quickFixProcessorsorg.eclipse.jdt.ui.classpathFixProcessors。再次从JUnit plugin.xml:

<extension point="org.eclipse.jdt.ui.quickFixProcessors">
  <quickFixProcessor
        name="%junitQuickFixProcessor"
        class="org.eclipse.jdt.internal.junit.ui.JUnitQuickFixProcessor"
        id="org.eclipse.jdt.junit.JUnitQuickFixProcessor">
  </quickFixProcessor>
</extension>

<extension point="org.eclipse.jdt.ui.classpathFixProcessors">
  <classpathFixProcessor
        name="%junitClasspathFixProcessor"
        class="org.eclipse.jdt.internal.junit.ui.JUnitClasspathFixProcessor"
        id="org.eclipse.jdt.junit.JUnitClasspathFixProcessor">
        <overrides id="org.eclipse.jdt.ui.text.correction.DefaultClasspathFixProcessor">
        </overrides>
  </classpathFixProcessor>
</extension>

答案 1 :(得分:0)

除了线程中已经提到的扩展点:

初始化容器的逻辑在org.eclipse.jdt.junit.core插件中。

   <extension
      point="org.eclipse.jdt.core.classpathContainerInitializer">
      <classpathContainerInitializer
            class="org.eclipse.jdt.internal.junit.buildpath.JUnitContainerInitializer"
            id="org.eclipse.jdt.junit.JUNIT_CONTAINER">
      </classpathContainerInitializer>
   </extension>