在IntelliJ中编辑运行时类路径以包含src/main/config

use*_*152 3 java classpath intellij-idea

我使用Maven和Spring在IntelliJ 12中编写了一个Java应用程序.我有以下文件夹:

src/main/java:用于Java代码

src/main/resources:用于打包到最终构建的JAR的资源

src/main/config:用于外部资源,即spring配置文件.

我已经尝试将src/main/config设置为sources文件夹,但是,在运行我的应用程序时,它在以下行中出现FileNotFoundException失败:

new ClassPathXmlApplicationContext("spring-config.xml");
Run Code Online (Sandbox Code Playgroud)

spring-config.xml坐在src/main/config里面.

另外,我注意到这个文件没有被复制到"Make"构建项目时intelliJ生成的目标目录.

现在我正在使用FileBasedApplicationContext进行测试,但是能够从intelliJin中运行应用程序而不必编辑代码会很好.

谢谢

Cra*_*der 5

在这里我的评论.必须在pom.xml文件中明确定义资源目录/模式,如下所示:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
        <resource>
            <directory>src/main/config</directory>
        </resource>
    </resources>
</build>
Run Code Online (Sandbox Code Playgroud)

  • IDEA构建使用Maven信息来查找它应该包含在类路径中的文件.如果你的pom在一些不寻常的或者IDEA方式尚未支持的情况下定义资源,它将无法工作.解决方法是[禁用外部版本](http://img189.imageshack.us/img189/3550/20121206235318.png),在这种情况下IDEA将使用`Settings` | `编译器`| `Resource Patterns`用于复制源文件夹中的其他文件.但是,你应该避免和描述pom文件中的所有资源. (2认同)