解释 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
项目的代码 中使用该库,则需要它也在编译时发生,但这通常发生在所有项目 A
、B
和 C
都是你的而不是第 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 文件中有啥?