【问题标题】:Maven and Eclipse problem - looking for resourcesMaven和Eclipse问题——寻找资源
【发布时间】:2011-01-17 09:32:34
【问题描述】:

我有一个问题,maven 正在 Eclipse 安装文件夹中寻找资源。

这是说:

This file was not found: file:/C:/eclipse/eclipse/src/main/resources/config/spring/applicationContext.xml

虽然我的工作区位于 c:/Work/Core/src/main/resources 内。

是否有任何配置 pom.xml 使其看起来相对于其位置??

编辑#1:

我正在从 Eclipse 运行 Maven。从命令行编译没有问题。

我正在尝试运行 Junit 测试。

编辑#2:

所有依赖项,web.xml,... 都可以 - 我知道这一点,因为其他开发人员在 Linux 和 Idea 上使用相同的文件,并且项目在那里运行没有问题。使用我的项目设置,junit 测试无法正常工作,编译 wsdl 文件也无法正常工作 - 都是因为它找不到资源。

编辑#3:

找到答案 - 已在此处发布。

【问题讨论】:

标签: java eclipse resources maven directory


【解决方案1】:

知道了......终于......我不知道为什么,但 Eclipse 只是不会从 Maven 刷新它自己的设置。

我不得不更改 .classpath:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" output="target/classes" path="src/main/java"/>
    <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
    <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
    <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
    <classpathentry kind="output" path="target/classes"/>
</classpath>

在第四行,excluding="**" - 我删除了它,它起作用了。

在此之后,我也遇到了项目名称的问题。在 pom.xml 中是

<groupId>core-maven</groupId>
<artifactId>core-maven</artifactId>

在构建标签&lt;finalName&gt;core-maven&lt;/finalName&gt; 中,我只想在“核心”中进行更改,但它不起作用,直到我找到它并在 .settings 文件夹下的文件中替换。

【讨论】:

  • 这个文件在哪里?
  • 在根项目目录下,如果你有项目“Project”,那么进入这个文件夹,你应该会看到它。它与“.settings”文件夹所在的文件夹相同。
【解决方案2】:

我们也可以查看您的 web.xml 吗?使用 spring,applicationContext.xml 位置在 web.xml 中定义,如下所示:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>...</param-value>
</context-param>

(编辑:我知道用 maven 编译不会关心 web.xml ......但运行 jUnit 测试它可以 - 取决于测试的设置方式。)

编辑 2:从 linux 环境切换到 windows 环境我可以看到指定事物所在位置的问题。仅仅因为它在一种环境下运行并不意味着切换到另一种环境时不会出现问题。如果您的 linux 开发人员决定告诉 spring applicationContext.xml 位于 /usr/local/myide/myproject/src... 怎么办? Windows 只会窒息。

【讨论】:

  • 我知道会有问题:) 我找不到解决方案...我只是认为 pom.xml 和 web.xml 没有问题。
  • 如果尝试在测试中初始化spring webApplicationContext,它确实与单元测试有关。 Spring 有专门的测试方法,例如 SpringJUnit4ClassRunner.class
【解决方案3】:

几周前我遇到了类似的问题。我更改了类路径以使某些东西正常工作,但这并不是真正的修复,只是一种解决方法,所以我对此不太满意。

过了一会同事推荐了SpringSource Tool Suite(sts) http://www.springsource.com/products/sts

它是 SpringSource 的基于 Eclipse 的 IDE,它有更好的 Maven 支持。因为我做了开关,所以一切都很好。而且由于它基于 Eclipse,我不必学习全新的 IDE,所有适用于 Eclipse 的东西都适用于 STS

【讨论】:

  • +1 在寻找解决方案时,我也找到了这个 IDE。我计划在不久的将来对其进行测试。感谢您的信息!
【解决方案4】:

使用 Eclipse 解决 Maven 问题的一个有吸引力的方法是切换到 Netbeans。它更易于使用,并且原生支持 Maven 项目。

【讨论】:

  • 哦……Netbeans……五六年前,它是一个非常糟糕的IDE……现在好些了吗?本着这种精神,我可以切换到 IDEA,因为我知道它在那里工作。
  • 据我了解,Netbeans 从那时起有了很大的改进(尤其是在性能方面)。它与 Maven 的干净集成是我从 Eclipse 切换到大多数项目的原因。
  • 这无关紧要。这个问题是关于 Eclipse 的,应该这样回答
  • 从上面的评论来看,看起来 OP 不同意你的观点;)
【解决方案5】:

你的配置有问题。做一些清理工作,然后重新开始。

  • 清理您的工作区:删除文件系统上的项目及其文件(当然首先要确保一切都在版本控制之下),删除现有的“Maven Build”运行配置。
  • 在文件系统的某处检查您的项目(而不是在工作区中,这是一种不好的做法)。
  • 在 Eclipse 中导入它(导入...> Maven 项目)。
  • 使用 Maven 运行测试。

P.S.:我假设您正在使用 m2eclipse,但这远非显而易见,您应该提供有关您的上下文的明确信息。

【讨论】:

  • 我想这是唯一的感觉……现在就试试。
【解决方案6】:

您能否在代码或 pom.xml 的相关部分粘贴您要执行的操作?

理想情况下,pom.xml 中的任何目录引用都应相对于 pom.xml 文件位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 2011-11-18
    相关资源
    最近更新 更多