JUnit的不一样的,我只是不知道如何...从Eclipse插件提供图书馆工作区
我猜是因为在属性> Java构建路径此项目的多数民众赞成>库>添加库向导:
我怎么可以这样做,包括我在这个向导库从我的插件,即其提供给在工作区中的用户?
JUnit的不一样的,我只是不知道如何...从Eclipse插件提供图书馆工作区
我猜是因为在属性> Java构建路径此项目的多数民众赞成>库>添加库向导:
我怎么可以这样做,包括我在这个向导库从我的插件,即其提供给在工作区中的用户?
好的,您需要查看三个不同的扩展点。最简单的方法是看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>
你,先生,应该得到一枚奖章。它还没有工作,但我现在很期待...... =) 顺便说一句,我也是瑞士人,这是为了伯尔尼大学的一个学士项目。 :d – 2012-04-18 16:57:04
除了那些在线程中已经提到的扩展点:
初始化容器的逻辑是在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>
您是否设法让它正常工作?我试图一样,但只是通过扩展在答案扩展点提到,它不起作用:( – aphex 2013-03-13 15:00:29
是的,它现在工作。我咨询了很多JUnit的源代码,复制和调整部分。你可以看看在我的代码中(无论是在“源代码”下还是安装插件,它都包含源代码):http://scg.unibe.ch/wiki/projects/DoodleDebug 最重要的类位于文件夹' DoodleServer'在包'ch.unibe.scg.doodle.server.buildpath'和'ch.unibe.scg.doodle.server.quickfix'。希望有帮助。 – 2013-03-13 15:36:32
非常感谢:) – aphex 2013-03-13 15:46:31