2

我一直在寻找这个问题很多,但是我真的找不到合适的解决方案或如何管理这个问题。

我编写了一个简单的 DSL,用于通过 Xtext 和 Xtend 生成一些代码。我可以选择在 Xtext 的 UI 项目中使用项目向导,以便能够为我的语法和插件创建一个单独的项目。我能够轻松地创建项目,但是我仍然需要将一些重要的依赖项添加到客户端项目的类路径中。这似乎有点棘手,特别是如果 .jar 的路径不是绝对的。

不过,这可能很明显要解决。

感谢任何帮助!谢谢 :)

4

1 回答 1

0

假设您谈论的是普通 Java 项目(没有 Eclipse 插件项目或 Maven/Gradle 项目),您可以创建一个类路径容器(类似于每个 Java 项目中存在的“JRE System Library”容器)。

Xtend 库容器是一个工作且易于访问的示例

基本步骤是:

  1. 你把你的库变成了一个 Eclipse 插件,你把它变成了你的 DSL 特性的一部分
  2. 在您的 UI 插件中,您创建一个实现,IClasspathContainer它使用 Eclipse 插件机制来检索 JAR 文件的位置
  3. 您创建一个子类,该子类创建您的实现ClasspathContainerInitializer的实例IClasspathContainer
  4. IClasspathContainerPage您可以使用项目设置中的 Java Build Path -> Libraries 页面为用户创建一个小向导页面,以添加您的库
  5. org.eclipse.jdt.core.classpathContainerInitializer您使用和org.eclipse.jdt.ui.classpathContainerPage扩展点在您的 UI 项目的 plugin.xml 中注册所有内容

在 Xtend UI 中,您还可以找到一些扩展,例如添加库的快速修复(它还处理将 Eclipse 插件项目作为客户端项目的情况)。

于 2016-11-15T18:41:59.820 回答