Maven / M2Eclipse一直排除我的资源

时间:2011-10-13 12:38:38

标签: eclipse maven m2eclipse

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

如果我检查“属性>> Java构建路径>>来源”我可以看到这两个文件夹有“已排除:**”。

通过单击排除项目中的“删除”可以轻松解决问题,但这确实非常令人沮丧。

项目设置非常简单,它有一些模块和子模块,但没什么特别的。我的pom.xmls中没有关于资源,日食或其他任何配置选项(也许我应该这样做)。

另一个问题是Eclipse一直在“目标”目录中报告警告(在“问题”视图中),它首先不应该给出一个该死的。

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

3 个答案:

答案 0 :(得分:6)

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

您在Build Path中看到的机制仅与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问题/用法我大多已经解决或有解释的解决方案。

我建议您执行"运行方式 - > Maven - >清洁"然后是"项目 - >清洁"然后启用自动bulding(这是为了允许基于Eclipse的自动构建,不要使用Run As - > Maven构建来测试这一点)。现在在eclipse外面打开一个文件管理器,并手动检查输出文件夹中是否有你认为没有被复制的资源。你应该会发现他们就是一样的。

我同意(可能是Validation)警告有关目标/ **目录中的项目,而Eclipse有办法从验证中手动排除目标/ **目录,此选项不会超出项目清理范围(当目标目录已删除。)

因此总是等待大型项目中的项目验证有点烦人。

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

答案 1 :(得分:0)

T_T不是一个好的解决方案。没有maven-update

就不会复制资源

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

正如迈尔斯上面指出的那样,eclipse不会复制资源,因为它假定maven会为你做这件事。然后,如果资源:在maven中执行作业的资源阶段没有执行,则在运行时会收到文件未找到异常。

检查此打开

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

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

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

然后改变

  <action>
    <ignore />
  </action>

  <action>
    <execute />
  </action>

目标resources

重新加载元数据&amp;更新maven项目

应该解决问题。

答案 2 :(得分:0)

步骤1.从Eclipse中删除项目 步骤2.重新导入项目 步骤3.转到需要添加为源文件夹的文件夹。

请参考以下屏幕截图: enter image description here