Eclipse插件开发,公开插件';java项目中的s类

Eclipse插件开发,公开插件';java项目中的s类,eclipse,eclipse-plugin,annotations,apt,annotation-processing,Eclipse,Eclipse Plugin,Annotations,Apt,Annotation Processing,我正在尝试构建一个注释处理器作为eclipse插件。 这是我第一次为eclipse编写插件,所以我不确定我使用的术语是否正确,如果我不太清楚,我很抱歉 我的目标是有一个插件,可以从带注释的Java类生成代码,我希望插件包含所有注释,因此除了安装插件之外,用户的项目不需要有额外的依赖项,即用户安装插件时编写一些类,用一些注释对它们进行注释(打包在插件中)并获取生成的代码 有可能做到我想做的吗?我见过一些其他插件(例如Xtent)添加了自己的库 10x这是可能的。您需要实现一个自定义IClasspa

我正在尝试构建一个注释处理器作为eclipse插件。 这是我第一次为eclipse编写插件,所以我不确定我使用的术语是否正确,如果我不太清楚,我很抱歉

我的目标是有一个插件,可以从带注释的Java类生成代码,我希望插件包含所有注释,因此除了安装插件之外,用户的项目不需要有额外的依赖项,即用户安装插件时编写一些类,用一些注释对它们进行注释(打包在插件中)并获取生成的代码

有可能做到我想做的吗?我见过一些其他插件(例如Xtent)添加了自己的库


10x

这是可能的。您需要实现一个自定义IClasspathContainer,当类路径容器位于构建中时,该容器动态解析插件jar并将注释类添加到项目构建路径。在构建路径UI中,IClasspathContainer的名称为“Library”.JRE、用户库等都是通过IClasspathContainer API实现的


要查看示例,请获取org.eclipse.jdt.core和org.eclipse.jdt.ui插件的源代码。

这是可能的。您需要实现一个自定义IClasspathContainer,当类路径容器位于构建中时,该容器动态解析插件jar并将注释类添加到项目构建路径。在构建路径ui中,IClasspathContainer类似于JRE、用户库等都是通过IClassPathContainerAPI实现的


要查看示例,请获取org.eclipse.jdt.core和org.eclipse.jdt.ui插件的源代码。

感谢您的快速响应,我现在想弄清楚的是:1.如何将库打包到插件中2.如何从插件中引用此库,即如果我想使用类似于
JavaCore.newLib的代码,应该使用什么路径稀有入口(新路径(“?”)…
分发注释类jar的方法多种多样。最好的方法是将jar转换为独立的OSGi捆绑包,与工具插件一起分发,而不是在工具插件中分发。然后从功能中引用这两个捆绑包。要在运行时找到捆绑包的路径,可以使用FileLocator.getBundleFile(Bundle)。要获取Bundle对象,请使用Platform.getBundle(id)。感谢您的快速响应,我现在想弄明白的是1.如何将库打包到插件中2.如何从插件中引用此库,即如果我想使用类似
JavaCore.newLibraryEntry(newpath(“?”)的代码,我应该使用什么路径…
分发注释类jar的方法多种多样。最好的方法是将jar转换为独立的OSGi捆绑包,与工具插件一起分发,而不是在工具插件中分发。然后从功能中引用这两个捆绑包。要在运行时找到捆绑包的路径,可以使用FileLocator.getBundleFile要获取Bundle对象,请使用Platform.getBundle(id)。