java clean 工程_关于java:Maven clean + build导致Eclipse中的项目显示错误,直到在Eclipse中清除为止...

与我们所有使用不同操作系统的开发人员相一致的开发环境中,我们的行为异常诡异。

在开发环境中,我们大约有20多个Maven(3.0.4)项目,它们都是Eclipse(Indigo)中的开放项目,它们的sonatype m2e(0.12.0)像往常一样处理依赖项。 (m2e 1.0给我们带来的问题多于解决方案)

在我们的20多个项目中,有一个项目表现得很奇怪。

在该项目上执行mvn clean install时,即使Maven成功通过,它也会导致4个Java文件(在单元测试中,如果有所不同)在Eclipse中显示错误。

尽管打开文件并在错误的类引用上按F3(打开声明)可以找到没有问题的类,但错误的类型为" SomeNameOfClass无法解析为类型"。

mvn clean是问题,如果我们只运行mvn install,则不会发生。

Eclipse的Project-> Clean清除了错误,一切正常。

这不是一个实际上会阻止我工作或诸如此类的事情的操作问题,我可以通过在Eclipse中进行清理来简单地解决它,我只是讨厌每次都这样做,即使他们没有项目,我也无法忍受红色的X。影响。

我真的真的很好奇,为什么这一切都会发生,为什么要专门讲这四个类呢?为什么为什么为什么? :)

您可以为这些测试类别提供更多的精度吗?是否还有其他符合预期的测试类?他们有特定的路径吗?

如前所述,您应该提供更多详细信息。这些文件是否生成了?

这些文件是常规的Java文件,不会生成。它们带有Test后缀,并包含一些用@Test注释的方法,就像普通的JUnit类一样。.所引用的类显示为cannot be resolved to a type是抽象的

要注意的另一件事是,尽管Java文件X中的错误为Y cannot be resolved to a type,但Y中没有错误。

您是否将项目导入为Java或Maven项目?您可以通过检查Package Explorer中的小项目图标来说明:Java右上角的J或Maven左上角的M。

都。图标不取决于您导入项目的方式,而是取决于.project文件中定义的项目性质,我们的项目具有两种性质。

.project文件以及其他一些IDE配置文件的样式是根据您导入项目的方式生成的,我不知道您是如何做到的,但是通常我们不会手动更改.project来使用这两种性质,因为IDE构建生命周期可能由于多种性质而格式错误(格式错误的.project文件可能来自SVN检出,IMO将那些IDE生成的文件放入SVN中是非常糟糕的做法)。在这里也查看我的答案,了解如何将项目正确导入到IDE。

您用" Eclipses project-> clean清除错误,一切正常"来保存我的一天。谢谢!

我们前一段时间遇到了完全相同的问题。我们有20多个项目出现相同的错误。根据我们所做的调查,我们得出结论,当运行maven clean install时,eclipse会丢失对类文件的跟踪,并认为其中一些未定义。

我们所拥有的解决方案是在命令行中发出以下命令:

mvn eclipse:clean

mvn clean install

mvn eclipse:eclipse

如果使用m2e或m2eclipse,则不再使用mvn eclipse:...。更好的方法是在" Maven-上下文"菜单中执行"更新项目配置"。

@GETah尽管您的建议消除了错误,但它会损坏.project和.classpath。这些文件在我们的源代码管理中,因此在每次构建时都不要更改它们。我想我可以做到这一点,并且在所有内容都执行git checkout -- .project和git checkout -- .classpath之后,但这似乎有点麻烦。

@Enrico我认为在版本控制下进行eclipse设置不是一个好主意。您只应将源代码以及pom文件保留在源代码控制下。

@GETah在源代码管理中具有.project和.classpath可以同步每个人的设置,它允许我们精通Java的开发人员只需导入一个项目即可使所有工作正常。

我选择一个正确的答案,因为如果您不控制.project和.classpath,它确实可以解决问题...

看起来mvn eclipse:clean在m2e环境中仍然很有帮助。果然,它删除了我的.project和.classpath文件,但是当我再次签出它们时(在git中丢弃了它们的删除),Eclipse成功地重建了项目! Maven→更新项目配置和Maven→更新依赖关系以前曾失败,我进行了清理和其他尝试。我很确定我没有更改这些文件,因此mvn eclipse:clean显然给m2e带来了帮助。

同意我们在m2e中用完了内存,在eclipse之外的命令行提供了帮助。

谢谢。它帮助了我。如果运行这些命令,则将您的maven项目转换为普通的Java项目。通过以下方式将其转换回Maven项目:-右键单击项目->配置->转换为Maven项目

如果要通过UI消除错误,请执行以下步骤:

在Eclipse中选择您的项目,然后按ALT + ENTER或右键单击项目->构建路径->配置构建路径

选择" Java构建路径"选项和"源"选项卡。

选择显示错误的节点,例如src / main / java,然后单击"删除",然后单击"应用"。

再次使用"添加文件夹"选项添加相同(已删除)的节点,然后单击"应用并关闭"按钮。

错误应该消失了!

我发现在maven中将jar作为"测试"范围会导致"无法解析的类型"错误,除了将其从pom文件中的测试范围中移出之外,我发现的其他任何方法都无法解决。

现在可以在Run configuration中的Refresh选项卡下指定项目完成后需要刷新。您将必须检查Refresh resources upon completion并在下面选择哪种行为。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值