如果我运行mvn clean package,我发现这个文件没有被复制到目标文件夹中的war文件中。
则映射文件可能不是在默认的资源目录(src/main/resources
),但在源目录(src/main/java
)和Maven默认情况下不会将它们复制到构建输出目录。
但是,如果我只做mvn clean,然后转到eclipse并从Project菜单中选择Clean,则文件将发送到目标中的相应位置。然后我可以使用mvn包来成功打包可访问数据库的war文件。
在Eclipse下,我的猜测是来自源目录的文件被复制到构建输出目录,包括应用程序资源文件。因此,在Eclipse清理步骤之后,当您运行package
时,这会以某种方式“欺骗”Maven。但这并不重要,主人是Maven,其他一切都是无关紧要的。
要修复它,请将您的映射文件移动到src/main/resources
。或者让他们在src/main/java
并声明源目录作为“额外”的资源目录:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
</build>
有人做到这一点,我更喜欢使用独立的目录。
你确定你的xml文件在资源文件夹下吗? – mhshams 2010-08-27 20:38:16