Eclipse m2e "Update Maven Project" 添加不需要的 bin 目录



我在日食时遇到了m2e的奇怪行为:

  1. 从远程 git 存储库克隆项目
  2. 在项目资源管理器中显示的目录结构没有maven性质,只有pom.xml根和包。没有"JRE 系统库",没有"Maven 依赖项"。没有"src/main/java",只有"my.packages.1","my.packages.2"
  3. 我使用 maven->Update Maven 项目更新项目。一切都显示得很好,除了创建一个"bin"目录,并且 bin dir 的内容与我从 git 中签出的内容相同。

例:更新之前 Maven 项目:

.settings/
src/
pom.xml
.gitignore

更新 Maven 项目后:

.settings/
src/
pom.xml
.gitignore
bin/  <------ this dir appears after update maven project
bin/.settings/  <----------- contents the same as outside dir
bin/src
bin/.gitignore
bin/pom.xml

我应该如何避免这种奇怪的行为?

似乎,在您执行"更新项目"之前,bin目录已配置为输出目录。默认情况下,输出目录在 Eclipse 中是隐藏的(至少在包资源管理器和项目资源管理器中)。将项目配置为 Maven 项目时,输出目录已更改为 target/classes 。您的 bin 文件夹现在只是另一个文件夹,不再隐藏。
由于您不再需要它,因此可以安全地删除它。

它也

发生在我身上,因为我在 .gitignore 中从存储库中排除了.classpath。 我最初认为Windows和Linux开发人员之间可能存在一些冲突,但我错了,.classpath应该是相同的。

如果你没有.classpath,在克隆时,java builder 会启动并在 maven builder 重新创建一个干净的.classpath之前把事情搞砸。

结论,提交并推动.classpath,这不再发生。