我正在使用带有Maven的Eclipse Mars(v 3.3)。当我更新我的pom中的依赖项(更改版本)时,即使我右键单击我的项目并选择“Maven” - >,我的Eclipse-Maven项目也不会提取它。 “更新项目。”我知道这一点,因为我在Eclipse Java编辑器中看不到编译错误,当我在命令行上使用
构建项目时mvn clean install
当我从工作区中删除项目并重新导入它时,事情就会恢复正常。然而,这是一个繁琐的过程。如何让我的Maven-Eclipse项目自动检测我的pom中的更改并适当更新项目库?
是的,在“项目”菜单中,选中“自动构建”。
答案 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依赖项的组(在“属性”对话框中)。像这样:
如果您希望每次更改pom时都自动更新Eclipse项目配置,则在首选项>下有一个(实验性)设置。的的Maven 即可。请注意,这样做可能并不理想 - 如this feature request中所述,这是一个有点冗长的过程,涉及Eclipse项目中的一些东西;每次mvn eclipse:eclipse
更改时自动执行此操作最终可能会遇到更多麻烦。
答案 1 :(得分:5)
您应该对类路径中的自动更新进行三次强制性检查
答案 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项目导入工作区,而是创建一个新项目并复制并粘贴您拥有的文件。