解释 eclipse .classpath 文件。 'kind="con"' 和 'exported="true"' 是啥意思?

Posted

技术标签:

【中文标题】解释 eclipse .classpath 文件。 \'kind="con"\' 和 \'exported="true"\' 是啥意思?【英文标题】: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文件都应该导出,但只导出其中的一部分。

【问题讨论】:

【参考方案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 导出依赖项,这意味着任何依赖于您的项目的项目也可以查看/访问导出的依赖项。

【讨论】:

断开的链接“类路径容器”

以上是关于解释 eclipse .classpath 文件。 'kind="con"' 和 'exported="true"' 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

eclipse .project文件 .classpath文件的作用

Eclipse .classpath/.project 文件中有啥?

eclipse项目中.classpath文件详解

eclipse项目中.classpath文件详解

eclipse中的.project 和 .classpath文件的具体作用

eclipse中怎么查看classpath路径