当我更改pom.xml文件中的依赖项时,如何让Eclipse-Maven项目自动更新其类路径?

时间:2016-02-19 18:02:12

标签: eclipse maven dependencies classpath maven-eclipse-plugin

我正在使用带有Maven的Eclipse Mars(v 3.3)。当我更新我的pom中的依赖项(更改版本)时,即使我右键单击我的项目并选择“Maven” - >,我的Eclipse-Maven项目也不会提取它。 “更新项目。”我知道这一点,因为我在Eclipse Java编辑器中看不到编译错误,当我在命令行上使用

构建项目时
mvn clean install

当我从工作区中删除项目并重新导入它时,事情就会恢复正常。然而,这是一个繁琐的过程。如何让我的Maven-Eclipse项目自动检测我的pom中的更改并适当更新项目库?

是的,在“项目”菜单中,选中“自动构建”。

5 个答案:

答案 0 :(得分:23)

将项目导入Eclipse时,请使用Eclipse自带的内置Maven支持(aka,m2e)。我建议不要使用mvn eclipse:eclipse因为它没有给出最好的结果(如您所见)。 Maven是一个构建和依赖管理工具,而不是IDE;期待它管理特定于IDE的东西是愚蠢的,在我看来(我意识到Maven团队的思维方式不同,Maven应该负责管理你的IDE,但那是无稽之谈)。

因此,如果您的系统上有可用的项目,请删除所有特定于Eclipse的文件(通常只有.classpath.project和文件夹.settings),它们是由{{{ 1}}并且您不希望它们干扰此处描述的“正确”导入过程。然后在Eclipse中,使用File>导入> Maven>用于导入项目的现有Maven项目。这应该会导致Eclipse和maven之间更好的集成,包括在更改pom时自动更新Eclipse构建路径。

作为快速检查,在以这种方式进行导入之后,您应该在项目的构建路径的“库”选项卡中看到一个名为 Maven依赖项的组(在“属性”对话框中)。像这样:

enter image description here

如果您希望每次更改pom时都自动更新Eclipse项目配置,则在首选项>下有一个(实验性)设置。的的Maven 即可。请注意,这样做可能并不理想 - 如this feature request中所述,这是一个有点冗长的过程,涉及Eclipse项目中的一些东西;每次mvn eclipse:eclipse更改时自动执行此操作最终可能会遇到更多麻烦。

enter image description here

答案 1 :(得分:5)

您应该对类路径中的自动更新进行三次强制性检查

  1. 您的存储库与Eclipse IDE不同步,请检查IDE中的以下设置。 External Maven
  2. 右键单击IDE中的任何POM.xml,并检查应自动激活的Maven配置文件。还应启用离线和强制更新复选框。请参考下图。autoactivated
  3. 请务必检查应反映当地maven settings.xml的用户设置,如下图所示。 enter image description here
  4. 执行所有这些检查后,请刷新Eclipse工作空间以反映这些更改。

答案 2 :(得分:0)

Eclipse应该更新你的类路径。如果不是,则意味着出现了问题。

如果不了解项目的pom.xml,就很难说出问题究竟是什么。可能需要更多信息来解决这个问题,但我只会在黑暗中捅一下:

打开项目根文件夹中的.project文件,检查构建器和性质的排序。项目的某些其他性质也可能导致maven2Nature失败。移动maven自然,看看是否有帮助。

或者您可能在思考 Eclipse不会更新您的依赖项,因为它不会在项目中添加一些错误指示符,这些指示符应该存在新的依赖项。如果是这种情况,请尝试清理当前项目(项目>清理...)。 Eclipse中的Maven并不一定在更新依赖项时触发完全重建。

如果这些都不起作用,关闭/打开项目可能比重新导入更快地解决问题。

答案 3 :(得分:0)

你写的,应该工作。你检查过这个:

  • " pure"来自终端的mvn install会看到您在POM中的更改?

  • 也许有些Maybe插件有问题,在target缓存了一些依赖项,需要mvn clean install

  • 您可以在新的工作区中运行Eclipse,并在那里导入您的项目,有时它可以帮助解决这些奇怪的问题

  • 而不是通过m2eclipse将Maven项目导入Eclipse,您可以尝试通过旧的mvn eclipse:eclipse创建Eclipse文件,然后看看会发生什么

  • 当您尝试将Maven项目导入其他IDE(例如免费的IntelliJ社区版)时它是否正常工作?

答案 4 :(得分:-3)

作为最后的手段,您可以删除当前的Eclipse安装并安装新版本。当您添加几个插件时,它们可能会相互干扰并产生奇怪的行为。执行此操作后,请不要将Maven项目导入工作区,而是创建一个新项目并复制并粘贴您拥有的文件。