【问题标题】:Eclipse m2e "Update Maven Project" adds an unneeded bin directoryEclipse m2e“更新 Maven 项目”添加了一个不需要的 bin 目录
【发布时间】:2012-12-13 06:02:42
【问题描述】:

我在eclipse上遇到m2e的一个奇怪行为:

  1. 从远程 git 存储库克隆项目
  2. 项目资源管理器中显示的 dir 结构没有 maven 特性,只有根目录下的 pom.xml 和包。没有“JRE 系统库”,没有“Maven 依赖项”。没有“src/main/java”,只有“my.packages.1”、“my.packages.2”
  3. 我使用 maven->Update Maven Project 更新项目。一切都显示得很好,除了创建了一个“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

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

【问题讨论】:

    标签: eclipse m2e


    【解决方案1】:

    这也发生在我身上,因为我从 .gitignore 的存储库中排除了 .classpath。我一开始以为windows和linux开发者之间可能会有一些冲突,但我错了,.classpath应该是相同的。

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

    结论,提交并推送.classpath,这不会再发生了。

    【讨论】:

    • 不,这不是解决方案。不应提交 IDE 特定文件。尤其是当您在多 IDE 环境中工作时...
    • @Lonzak,实际上,市场上并没有那么多 IDE。这里有些人使用 eclipse,其他人的想法。从未经历过任何碰撞。 (.project、.idea、.settings 等)。原则很好,但要付出代价。有些人,比如我,更喜欢务实。
    • 我的意思不是 IDE 之间的冲突,而是这些文件与其他 IDE 完全无关。我使用eclipse,不想被我们的intellij文件或netbeans或其他人打扰。对我们来说实用的解决方案是不提交这些文件,而只提交“项目”相关文件。顺便说一句,除了 3 个主要 IDE 之外,还有很多 others ;-)
    【解决方案2】:

    看来,在您执行“更新项目”之前,bin 目录已配置为输出目录。默认情况下,输出目录在 Eclipse 中是隐藏的(至少在 Package Explorer 和 Project Explorer 中)。当您将项目配置为 Maven 项目时,输出目录更改为target/classes。您的 bin 文件夹现在只是另一个文件夹,不再隐藏。
    由于您不再需要它,您可以放心地删除它。

    【讨论】:

    • 感谢您的回答。有什么方法可以将项目默认设置为 maven 项目?
    • 我不知道。但是您可以将项目作为 Maven 项目导入,然后在导入时会正确配置。为此,请转到菜单文件 -> 导入 -> Maven -> 现有 Maven 项目
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-31
    • 2013-05-02
    相关资源
    最近更新 更多