Maven和Eclipse问题 - 寻找资源

时间:2010-02-16 13:03:52

标签: java eclipse resources maven directory

我遇到一个问题,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:

找到答案 - 它会在这里发布。

6 个答案:

答案 0 :(得分:6)

得到它......最后......我不知道为什么,但是Eclipse并没有从Mavens刷新自己的设置。

我不得不改变.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>

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

答案 1 :(得分:1)

我们还能看到你的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只会窒息。

答案 2 :(得分:1)

使用 配置时,您遇到了问题。做一些清理,然后重新开始。

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

P.S。:我假设您正在使用m2eclipse,但这并不明显,您应该提供有关您的背景的明确信息。

答案 3 :(得分:1)

几周前我遇到过类似的问题。我改变了类路径以获得工作,但这不是一个真正的修复,只是一个解决方法,所以我对它不是很满意。

过了一段时间,一位同事推荐了SpringSource Tool Suite(sts) http://www.springsource.com/products/sts

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

答案 4 :(得分:0)

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

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

答案 5 :(得分:-3)

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