在 Eclipse 中对 Maven 依赖项进行排序

Posted

技术标签:

【中文标题】在 Eclipse 中对 Maven 依赖项进行排序【英文标题】:Sort maven dependencies in Eclipse 【发布时间】:2011-04-18 07:02:47 【问题描述】:

只是想知道是否可以在 Eclipse 中按字母顺序对 Maven 依赖项进行排序?

有一份 200 个未订购的罐子的清单让我很困扰...... :(

【问题讨论】:

你能把接受的答案改成***.com/a/52001216/845034吗? @steffen ok 完成 【参考方案1】:

我遇到了一个问题,即检查了Preferences 下的Sort library entries alphabetically in Package ExplorerJavaAppearance,但依赖关系仍未排序。

右键单击库路径并单击Show in -> System Explorer 为我解决了这个问题。

【讨论】:

【参考方案2】:

Eclipse Photon 现在终于可以实现了。

只需勾选Preferences下的复选框Sort library entries alphabetically in Package ExplorerJavaAppearance

另请参阅“在包资源管理器中按字母顺序对库条目进行排序”下的 here。

不幸的是,至少对我来说,源文件夹也被重新排序,请参阅here。

【讨论】:

【参考方案3】:

我刚碰到Sortpom Maven Plugin。这使您可以使用 Maven 命令对 pom 中的依赖项进行排序。因此,您可以在 Eclipse 中使用它,也可以在任何其他 IDE 中使用它(我使用的是 NetBeans,您可以在其中将其配置为自定义目标定义)。

简单运行:

mvn com.github.ekryd.sortpom:sortpom-maven-plugin:sort -Dsort.sortDependencies=groupId,artifactId

在 GitHub wiki 你可以找到all parameters。

但正如 cmets 中所指出的,这样排序并不是一个好主意。让您的 IDE 来处理它。 NetBeans 在项目中有一个“Dependencies”文件夹,默认情况下显示的依赖项是按类型排序的(首先按类型,然后按名称)。

【讨论】:

IMO 这通常是个坏主意,因为 Maven(从 2.0.9 版开始)uses deterministic classpath ordering based on order specified in POM。对它们进行排序很容易弄乱你的构建。 @eis - 仅供参考,默认情况下,sortpom 插件不会对模块或依赖项进行排序(因为这个原因)。如果已配置,则可以完成,并且文档对警告很清楚。【参考方案4】:

Maven 的 Pom 查看器可以解决问题:

双击您关心的pom.xml。 Eclipse 在一个特殊的查看器中打开它,底部有五个选项卡:Overview、Dependencies、Dependency Hierarchy、Effective POM 和 pom.xml。

点击Dependency Hierarchy。您应该在视图右侧看到以下内容:

它是按字母顺序排列的。

【讨论】:

我默认没有按字母顺序排列,必须点击“排序”按钮(在屏幕截图的右上角)【参考方案5】:

查看“库”选项卡下“java 构建路径”部分中的项目属性。

我不确定这是否适用于 m2eclipse 插件。

【讨论】:

这实际上是已排序的,并且比尝试手动扫描列表以查看您的项目是否在其中更好的解决方案。【参考方案6】:

我猜你指的是 m2eclipse 插件。您有以下选择:

    导航器中的顺序是类路径顺序。您可以对 POM 中的依赖项进行排序以获得更好的列表。当然,瞬态依赖也有问题。

    您可以在 POM 编辑器中打开 POM 文件并在“依赖层次结构”选项卡中检查依赖关系

    当“Maven 依赖项”树项打开时,您可以键入依赖项的部分名称来定位它。

【讨论】:

令人沮丧。这是一个很好的答案(+1),但选项非常不令人满意。也许有人应该针对字母顺序选项提出功能请求,但我不知道这是否应该针对 eclipse 或 m2eclipse。 不幸的是,这些选项都不起作用:(1) 不适合您注意到的瞬态依赖项,(2) 您可以在那里看到它,但无法展开以查看里面的包/类, (3) 好的,只要您可以准确地键入工件名称而无需任何提示/反馈且不犯任何错误。例如,我只是在一个列表中寻找“selenium-remote-driver”,其中包含六个硒 JAR(所有这些 JAR 都以“selenium-”为前缀) - 输入“selenium-re”而不会出错并且在屏幕上看不到任何反馈,这是相当困难的。 @Kidburla:在包资源管理器中打开“Maven Dependencies”。键入“sel”,然后使用 Cursor-Up/Down 逐步浏览以这三个字母开头的所有实例。

以上是关于在 Eclipse 中对 Maven 依赖项进行排序的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Eclipse 中导入 Maven 依赖项?尝试了一切

Eclipse maven没有添加依赖项

Eclipse 项目中缺少 Maven 依赖项

命令行上的 Maven 依赖项更新

在集成 Maven、Tycho 和 Eclipse 时处理非 OSGi 依赖项

eclipse 调试器:附加 Maven 依赖项的源代码?