我在Eclipse中使用m2eclipse插件,以便我可以导入Maven项目。该插件读取pom.xml并以Eclipse友好的方式对项目中的依赖项进行排序,因此我不会看到破坏引用和错误的大海。
我使用Eclipse进行代码开发,但是我通常从命令行构建项目,例如“mvn clean install”。
不幸的是,当我这样做时,m2eclipse会检测磁盘活动并尝试重建工作区。这会干扰命令行构建,有时会导致竞争条件。例如,命令行可能处于干净阶段但由于尝试删除在工作区重建期间锁定的文件或目录而失败。除了工作空间重建速度非常慢,在失败的构建和浪费的CPU之间,我的构建过程比应有的长2-3倍。
不能使用Eclipse(例如使用Netbeans)或禁用m2eclipse。除了这种行为之外,它是一个有用的插件。
所以我的问题是,如何阻止m2eclipse一直重建工作区?我可以调用手动刷新,否则会禁用此行为吗?
答案 0 :(得分:2)
作为快速修复,您可以取消激活自动Eclipse构建,取消Project > Build Automatically
答案 1 :(得分:0)
问题是 Eclipse 检测到已编译的资源已消失并开始重建。
您不需要执行mvn clean install
,而是mvn install
,因为您的所有资源都已经是最新的。
答案 2 :(得分:0)
除了dimitrisli所说的,我建议在eclipse和命令行中使用不同的输出目录。
您可以通过定义新的配置文件(例如“eclipse”)并在该配置文件中将输出目录设置为<outputDirectory>${project.build.directory}/classes-eclipse</outputDirectory>
来完成此操作。
即使你并行构建(从eclipse和命令行),它们也不会相互干扰。