【问题标题】:Interpreting eclipse .classpath file. What does 'kind="con"' and 'exported="true"' mean?解释 eclipse .classpath 文件。 'kind="con"' 和 'exported="true"' 是什么意思?
【发布时间】:2012-12-07 06:54:03
【问题描述】:

这是我下载的eclipse插件程序的eclipse.classpath文件。

我认为kind="src"kind="output" 非常简单,因为它们表示源java 文件和编译的类文件所在的位置。

kind="lib" 似乎表示插件正在引用的 jar 文件,但我有一些我不确定的东西。

  • kind="con" 是什么意思?
  • exported="true" 是什么?我认为为了使用这个插件,插件引用的所有jar文件都应该导出,但只导出其中的一部分。

【问题讨论】:

    标签: java eclipse eclipse-plugin classpath


    【解决方案1】:

    1) 在kind="con" 中,con 代表容器,Eclipse 将其解释为classpath container。如该链接所述:

    类路径容器提供了一种间接引用一组 通过 CPE_CONTAINER 类路径条目的类路径条目

    换句话说,它可以以任何方式对其他类路径条目进行分组,并在任何地方重复使用它(包括为不同项目提供不同条目的能力)。

    2)exported: 假设您有依赖于项目C 的项目B。依赖定义为exported=true。然后,另一个依赖于项目B 的项目A 也将在A'a 类路径上存在项目C

    【讨论】:

    • 那么,我猜导出的库仅用于运行时目的。我的意思是,当库在运行时没有被引用时,你不必导出它。
    • @prosseek 很好,就像任何class 文件一样...但是,如果您想在A 项目的代码 中使用该库,则需要它也在编译时发生,但这通常发生在所有项目 ABC 都是你的而不是第 3 方时。
    • @prosseek 当B 是第 3 方时,它通常会在不能保证在使用第 3 方的客户端代码的类路径中存在依赖关系时导出其依赖关系。如果您对该第 3 方的使用实际上并不需要它导出的特定依赖项 - 它可能会被排除在外。
    • @yair: 所以在你的例子中:exported-attribute 属于项目B 的类路径,它说项目C 将被导出用于导入项目B 的其他项目(例如项目A)。只有当我将依赖项导出到B 中的C 时,才有人能够在A 中看到C
    • @armin.miedl 在阅读了答案和您的评论后 - 是的,我认为您做对了(但它发布此答案已经 6 年多了.. . :) ).
    【解决方案2】:
    • kind="con" 表示classpath containers
    • exported=true 导出依赖项,这意味着任何依赖于您的项目的项目也可以查看/访问导出的依赖项。

    【讨论】:

    • 断开的链接“类路径容器”
    猜你喜欢
    • 2021-02-07
    • 1970-01-01
    • 2016-07-01
    • 2022-11-30
    • 2016-08-19
    • 2015-07-11
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    相关资源
    最近更新 更多