【问题标题】:Maven / M2Eclipse excludes my resources all the timeMaven / M2Eclipse 一直排除我的资源
【发布时间】:2011-12-06 22:38:28
【问题描述】:

Maven-Eclipse 集成有两个非常烦人的问题,它有时会从构建路径中排除我在 src/main/resources 和 src/test/resources 中的所有资源。

如果我检查“Properties >> Java Build Path >> Source”,我可以看到这两个文件夹有“Excluded: **”。

通过点击排除项上的“删除”可以轻松解决问题,但这真的很令人沮丧。

项目设置很简单,有一些模块和子模块,但没什么花哨的。我的 pom.xmls 中没有关于资源、eclipse 或其他任何东西的任何配置选项(也许我应该?)。

另一个问题是 Eclipse 一直在“目标”目录(在“问题”视图中)报告警告,它一开始就不应该在意。

Ps:Springsource Tool Suite 2.7.0.RELEASE,Maven Integration for Eclipse 0.12.1.20110112,Maven 2.2.1

【问题讨论】:

  • 你解决了吗?
  • 你能编辑这个问题,让它包含一个问题而不是两个问题吗? @AnmolGupta 接受的解决方案不适合您吗?

标签: eclipse maven m2eclipse


【解决方案1】:

这是正确的行为。当前版本的 M2E 为 Eclipse IDE 内的自动构建过程提供了自己的贡献者。此构建过程考虑了 generate-resources 和 process-resources 等的 maven 生命周期......即,某些项目具有从配置生成资源并放入已编译输出文件夹的插件。

您在构建路径中查看的机制仅与 Eclipse IDE 的内置机制有关,用于将一组输入源文件夹编译/组装到输出文件夹中。如果 Maven 和 Eclipse 都这样做,就会出现冲突/问题。

M2E 常见问题解答中有一个关于这个确切点的链接https://www.eclipse.org/m2e/documentation/m2e-faq.html#how-to-configure-proxy-and-location-of-maven-local-repository

如果您确实遇到资源未被复制的问题,也许我们可以解决问题的原因(因为那是另一回事),但您的主要问题是关于一个常见的 M2E 常见问题解答点。

也许您想升级到 org.eclipse.m2e 和 Indigo,因为我遇到的许多 Maven 复杂的 maven 问题/用法大部分都已解决或有解释的解决方案。

.

我建议您执行“Run As -> Maven -> clean”,然后执行“Project -> Clean”,然后启用自动构建(这是为了允许基于 Eclipse 的自动构建发生,不要使用 Run As -> Maven 构建来测试这一点)。现在在 eclipse 之外打开一个文件管理器并手动检查输出文件夹中您认为没有被复制的资源。你应该会发现它们是一样的。

.

我同意关于 target/** 目录中项目的(可能是验证)警告,虽然 Eclipse 有一种方法可以手动从验证中排除 target/** 目录,但此选项不会超出项目清理范围(当目标目录被删除)。

所以在大型项目中总是等待验证项目有点烦人。

也许我尝试查看是否可以创建一个 Maven Eclipse 连接器插件来执行此操作,即绑定到构建生命周期并自动在目标文件夹上应用排除验证。

【讨论】:

  • 非常感谢您的详细解答。
  • exclusion **,是正确的,应该是正确的,您显然没有理解为什么它是正确的解释,请研究并再次阅读。
  • 遗憾的是,这意味着运行依赖于上下文文件的 JUnit 测试变得复杂,因为 Eclipse 看不到资源/** :(
  • 当您使用 GWT 的 UiBinder 功能时,这也有点让人头疼。 Maven 不允许在源代码中包含 XML 文件,但是在开发过程中不允许 GWT 插件看到它们。我删除了 . 过滤器,在我需要更新依赖项之前我很好。应该有一个选项。
【解决方案2】:

T_T 不是一个好的解决方案。没有 maven-update 就不会复制资源


maven 资源:在 Lifecycle Mappings 中标记为忽略的资源阶段会导致此问题。

正如 Miles 上面指出的,eclipse 不会复制资源,因为它假设 maven 会为您完成。然后,如果没有执行在 maven 中执行工作的资源:资源阶段,则会在运行时收到文件未找到异常。

检查这个打开

project->properties->maven->生命周期映射

并查看 resources:resources 是否被标记为忽​​略。

解决它 windows->preference->maven->生命周期映射->打开工作区生命周期映射元数据

然后改变

  <action>
    <ignore />
  </action>

  <action>
    <execute />
  </action>

为目标resources

重新加载元数据并更新 maven 项目

应该能解决问题。

【讨论】:

  • FWIW 您是否确保为 build-helper-maven-plugin 安装 m2e 连接器?你还需要上面的答案吗?据我了解,这使得许多影响类路径/构建的目标/插件按预期工作。
【解决方案3】:

步骤 1. 从 eclipse 中删除项目 步骤 2. 新鲜导入项目 step 3. 进入需要添加为源文件夹的文件夹。

请参考以下屏幕截图:

【讨论】:

  • 您的图片无法再访问。
猜你喜欢
  • 2016-04-17
  • 2010-11-17
  • 1970-01-01
  • 2011-02-15
  • 2015-03-13
  • 1970-01-01
  • 2016-01-29
  • 2023-03-05
  • 1970-01-01
相关资源
最近更新 更多