JUnit 做同样的事情,我只是不知道如何......
我猜那是因为 Properties > Java Build Path > Libraries > Add Library 向导中的这个条目:
我该如何做同样的事情并从我的插件中将我的库包含在此向导中,即使其对工作区中的用户可用?
JUnit 做同样的事情,我只是不知道如何......
我猜那是因为 Properties > Java Build Path > Libraries > Add Library 向导中的这个条目:
我该如何做同样的事情并从我的插件中将我的库包含在此向导中,即使其对工作区中的用户可用?
好的,您需要查看三个不同的扩展点。最简单的方法是看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
. 这延伸IClasspathContainerPage
和IClasspathContainerPageExtension
。
对于 quickfix 和 classpathfix,请参见扩展点org.eclipse.jdt.ui.quickFixProcessors和org.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>
除了线程中已经提到的扩展点:
初始化容器的逻辑在 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>