Eri*_*son 7 java maven-2 hibernate
我正在使用Maven 2和Hibernate作为Java Web应用程序.
我有一个Hibernate映射文件,Domain.hbm.xml
在同一个源文件夹中有几个域类.
如果我运行,mvn clean package
我发现该文件未被复制到目标文件夹中的war文件中.
但是,如果我只mvn clean
执行eclipse并从"项目"菜单中选择"清理",则会将文件发送到目标中的适当位置.然后我可以mvn package
成功地打包一个有权访问数据库的war文件.
这是一个pom设置?这是怎么回事?
Pas*_*ent 14
如果我运行mvn clean包,我发现这个文件没有被复制到目标文件夹中的war文件中.
然后映射文件可能不在默认资源目录(src/main/resources
)中,而是在源目录(src/main/java
)中,默认情况下Maven不会将它们复制到构建输出目录.
但是,如果我只进行mvn clean然后转到eclipse并从Project菜单中选择Clean,则该文件将被发送到目标中的适当位置.然后我可以做mvn包来成功打包一个有权访问数据库的war文件.
在Eclipse下,我的猜测是源目录中的文件被复制到构建输出目录,包括应用程序资源文件.所以当你package
在Eclipse清理步骤之后运行时,这会以某种方式"欺骗"Maven .但这并不重要,主人是Maven,其他一切都无关紧要.
要修复它,请将映射文件移动到src/main/resources
.或者保留它们 src/main/java
并将sources目录声明为"额外"资源目录:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
</build>
Run Code Online (Sandbox Code Playgroud)
有些人这样做,我更喜欢使用单独的目录.
您想要直接在类路径上的Java源代码以外的资源(在您的情况下在/ WEB-INF/classes中)必须放在src/main/resources目录中,而不是src/main/java.
归档时间: |
|
查看次数: |
6154 次 |
最近记录: |