【问题标题】:xtext language library dependency and mavenxtext语言库依赖和maven
【发布时间】:2017-12-20 17:05:06
【问题描述】:

我有一个包含代码生成器的 xtext 语言项目(使用 xtext 2.13/java8)。生成器生成的 java 代码需要针对我作为另一个插件包含在我的项目中的另一个支持库进行编译和运行。该项目包括使用生成器测试框架编译和执行的生成器 junit 测试。一切都在 Eclipse 中构建并运行良好。我设置了一个 maven 构建,它成功构建了所有内容,并运行了解析器和验证测试,但它在生成器测试中失败了,因为它无法解决对我的支持库的依赖。这些测试在 Eclipse 下成功运行的事实告诉我,我已经正确构建了插件清单,但不知何故,maven 构建缺少那些对支持库的编译/运行依赖。 在 maven 下运行时,我需要做什么来配置生成器测试以包含这些依赖项? 我在 Eclipse 内或命令行上运行 maven 时遇到相同的错误:生成器成功生成代码,但由于编译器无法解析对支持类的依赖关系,因此无法编译。

【问题讨论】:

  • 使用 Xtext Maven 插件看这里:eclipse.org/Xtext/documentation/350_continuous_integration.html 了解更多详情...
  • 顺便说一句,将支持库的项目或 jar 添加到生成器测试的类路径(在 junit 测试的运行配置中)似乎没有任何效果。
  • 如何构建支持库。 Dow 是否将其添加为依赖项。你如何测试生成器
  • 我使用 xtext 项目向导为 maven 构建设置了项目,就像我说的,除了生成器测试之外,它都在 maven 下构建和运行。该文档解释了如何将依赖项添加到其他 xtext 语言资源,但不清楚这是否适用于其他插件/库。
  • 支持库被构建为一个 Eclipse 插件,作为父项目的另一个子项目——即作为父 pom.xml 中的一个模块。我在测试子项目的清单中向支持库添加了依赖项,这使它在 eclipse 中运行 junit 测试时工作。假设 tycho 应该引用 MANIFEST 依赖项,则不在 pom 文件中表达任何显式依赖项。

标签: java eclipse maven xtext


【解决方案1】:

问题原来是支持库的 build.properties 文件中的一个细微错误。 bin.includes 设置是

bin.includes = META-INF

但它还需要包含 '.'如下:

bin.includes = META-INF,\
    .

我不了解你,但我真的很难看到那个时期。 不知道它是如何被删除的,但线索是生成的 jar 文件不包含任何类。 Maven 构建通过 SNAPSHOT jar 文件解析,而显然 eclipse 构建可以直接找到类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 2010-10-22
    相关资源
    最近更新 更多