【问题标题】:This can be caused by compile errors in Eclipse这可能是由 Eclipse 中的编译错误引起的
【发布时间】:2016-08-19 03:16:07
【问题描述】:

idea IDE编译项目时,出现错误: 错误:osgi:[测试]默认包'。' Import-Package 语法不允许。 这可能是由 Eclipse 中的编译错误引起的,因为 Eclipse 创建 无论编译错误如何,都是有效的类文件。 以下包从默认包 null 导入

但是当使用 Eclipse ide 时,它​​可以工作。 我用谷歌搜索过,只找到 this post ,但这不是我的情况。 我用 OSGI 反编译了生成的类,没有像import . 这样的语法 对这个问题有什么想法吗?

【问题讨论】:

  • 您的项目中是否有任何编译错误? IE。代码旁边有红色的 X 标记吗?
  • @NeilBartlett 我更新了帖子。来自idea IDE。
  • 我已经用谷歌搜索过这个问题很多次了。在仔细观察了原来的pom之后,我发现我引用了两个依赖但没有属性providedtrue。测试用例现在可以在 IntellJ idea 下运行,添加属性。不知道为什么,需要深挖
  • 是的,我知道我最初误读了您的问题,抱歉。来自 bnd 的消息“这可能是由 Eclipse 中的编译错误引起的”实际上只是一个提示。 一个从类文件中引用默认包的原因是 Eclipse 的这种生成类文件的习惯,即使源代码有编译错误。但这显然不适用于您使用不同的 IDE。

标签: java eclipse intellij-idea osgi blueprint-osgi


【解决方案1】:

你能改变你的课程包吗?这样 eclipse 将在编译后创建新的类。有'。无论如何,打包不是一个好习惯。

另外,对于 eclipse 和 intellij,更喜欢不同的工作空间。最好有 3 个文件夹,一个用于源代码,一个用于 eclipse 工作区,一个用于 intelliJ 工作区。每个 IDE 创建自己的文件

【讨论】:

    【解决方案2】:

    由于 Groovy 脚本文件具有导入语句,但文件开头没有包名称,我收到此错误。我在我的 Groovy 脚本中添加了一个包名称,运行清理以擦除我的目标目录,然后问题就消失了。

    查看 Hemant 的回答 in this similar issue

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-26
      • 1970-01-01
      • 1970-01-01
      • 2016-10-20
      • 2022-07-13
      • 1970-01-01
      • 2015-08-10
      相关资源
      最近更新 更多