java - maven能否解析文件夹结构发生变化的本地资源?

标签 java maven netbeans

我正在尝试将现有项目从 Ant 项目迁移到 Maven 项目。 Ant 项目的结构如下:

|-root
|---resources
|------foo
|------yaz
|---src
|------SomeFile.java

Maven 项目的结构为

|-root
|---src
|------main
|---------java
|------------SomeFile.java
|------test
|---------resources
|------------foo
|------------yaz

不幸的是,代码中有很多对“资源”文件夹的显式引用。一些例子:

@ContextConfiguration("classpath:/resources/foo/bar.xml")

ApplicationContext context = 
   new FileSystemXmlApplicationContext("resources/foo/baz.xml");

File file = new File("resources/yaz/blah.gif");

etc...

更改所有引用会花费很多精力(并且由于其他业务规则,代码必须保留在“资源”文件夹中)。我想知道 Maven 中是否有一种简单的方法来解决文件夹结构的变化。这样,当 JUnit 测试运行或应用程序通过 IDE (Netbeans) 启动时,它将正确解析资源。

换句话说,代码在 Ant 中运行良好,但在移动到 Maven 后就崩溃了,因为资源已移动到不同的文件夹结构。

最佳答案

您的代码应该始终引用构建区域中的文件,而不是源代码区域中的文件。看来您的 maven 构建并没有完全复制 ant 构建正在做的事情。检查 target/classses 文件夹(稍后构建 jar 文件的基础)并查看资源文件的位置。如果错误,要么操纵源目录结构直到得到你想要的,要么使用 pom 元素设置正确的 - http://maven.apache.org/pom.html#Resources

关于java - maven能否解析文件夹结构发生变化的本地资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16903571/

相关文章:

JavaFX 和 Java 实体类

java - Tomcat 7 上的 Spring 应用程序问题

java - 如何使用 Spring-mvc 修复 "Mail server connection failed; nested exception is javax.mail.MessagingException: Could not convert socket to TLS; "?

java - 网络代码有时会抛出 UnknownHostException

maven - Wro4j maven 插件 - 缺少所需的类

java - 维护 GWT Web 应用程序的构建版本号

c - 手工制作和自动生成的 makefile 在 windows 下失败但在 unix 上工作

java - 如何从 netbeans 的 main 方法设置文本字段文本?

java - java中获取资源(jar)路径

java - 在 grails 框架之外使用 grails 插件?