java – mvn install忽略hibernate映射文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – mvn install忽略hibernate映射文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5709字,纯文字阅读大概需要9分钟。
内容图文
![java – mvn install忽略hibernate映射文件](/upload/InfoBanner/zyjiaocheng/790/0c5465def8cd405887a90ef5f75b49cd.jpg)
使用mvn install命令将我的项目安装到本地存储库时,hibernate映射文件将从生成的JAR中排除.
我在src / main / resources / traffic_domain / mapping /下有* .hbm.xml文件,因此它应该没问题,因为它遵循maven的标准目录布局.
我的POM文件看起来像这样:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>masters.traffic</groupId>
<artifactId>traffic_domain</artifactId>
<packaging>jar</packaging>
<name>traffic_domain</name>
<version>0.1.0</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
...
</project>
目录结构如下:
traffic_domain
|-- pom.xml
|-- src
|-- main
|-- java
|-- ...
|-- resources
|-- traffic_domain
|-- mapping
|-- Access.hbm.xml
|-- *.hbm.xml
traffic_domain.jar是我的Web应用程序运行所需的JAR之一.在启动tomcat时,我遇到了这样的异常:
Caused by:
org.hibernate.MappingNotFoundException:
resource:
main/resources/traffic_domain/mapping/Access.hbm.xml
not found at…
如何解决?
更新:确定(ad.Pascal Thivent评论),这是调用mvn clean包后生成的JAR的内容:
c:\Users\jwa\Desktop\tets\traffic_domain\target>jar xvf traffic_domain-0.1.0.jar
created: META-INF/
inflated: META-INF/MANIFEST.MF
created: main/
created: main/java/
created: main/java/traffic_domain/
created: main/java/traffic_domain/bean/
created: main/java/traffic_domain/logic/
created: main/java/traffic_domain/tools/
inflated: Access.hbm.xml
inflated: District.hbm.xml
inflated: main/java/traffic_domain/bean/Access.class
inflated: main/java/traffic_domain/bean/District.class
inflated: main/java/traffic_domain/bean/PostalCode.class
inflated: main/java/traffic_domain/bean/Street.class
inflated: main/java/traffic_domain/bean/TrafficCondition.class
inflated: main/java/traffic_domain/logic/AccessFacade.class
inflated: main/java/traffic_domain/logic/LocationFacade.class
inflated: main/java/traffic_domain/logic/TrafficConditionFacade.class
inflated: main/java/traffic_domain/tools/HibernateUtil.class
inflated: PostalCode.hbm.xml
inflated: Street.hbm.xml
inflated: TrafficCondition.hbm.xml
created: META-INF/maven/
created: META-INF/maven/masters.traffic/
created: META-INF/maven/masters.traffic/traffic_domain/
inflated: META-INF/maven/masters.traffic/traffic_domain/pom.xml
inflated: META-INF/maven/masters.traffic/traffic_domain/pom.properties
为了比较,这里是由Eclipce创建的JAR的内容,它正在工作:
C:\Users\jwa\Desktop\correct>jar xvf traffic_domain.jar
inflated: main/java/traffic_domain/bean/PostalCode.class
inflated: traffic_domain/mapping/Access.hbm.xml
created: main/resources/
created: main/resources/traffic_domain/
inflated: traffic_domain/mapping/Street.hbm.xml
inflated: main/java/traffic_domain/logic/AccessFacade.class
inflated: main/resources/traffic_domain/mapping/TrafficCondition.hbm.xml
inflated: traffic_domain/mapping/PostalCode.hbm.xml
created: main/java/traffic_domain/bean/
inflated: main/java/traffic_domain/tools/HibernateUtil.class
created: main/
inflated: main/java/traffic_domain/bean/TrafficCondition.class
inflated: mapping/Street.hbm.xml
inflated: PostalCode.hbm.xml
inflated: main/java/traffic_domain/bean/Access.class
created: traffic_domain/mapping/
inflated: District.hbm.xml
created: traffic_domain/
inflated: traffic_domain/mapping/TrafficCondition.hbm.xml
created: main/java/traffic_domain/tools/
inflated: Access.hbm.xml
inflated: traffic_domain/mapping/District.hbm.xml
created: main/java/traffic_domain/logic/
created: mapping/
created: main/resources/traffic_domain/mapping/
inflated: mapping/TrafficCondition.hbm.xml
inflated: main/resources/traffic_domain/mapping/Access.hbm.xml
inflated: mapping/Access.hbm.xml
inflated: main/java/traffic_domain/bean/Street.class
created: main/java/
inflated: main/java/traffic_domain/logic/TrafficConditionFacade.class
inflated: main/resources/traffic_domain/mapping/PostalCode.hbm.xml
created: main/java/traffic_domain/
inflated: TrafficCondition.hbm.xml
inflated: main/resources/traffic_domain/mapping/District.hbm.xml
inflated: mapping/PostalCode.hbm.xml
inflated: Street.hbm.xml
inflated: main/resources/traffic_domain/mapping/Street.hbm.xml
inflated: main/java/traffic_domain/logic/LocationFacade.class
inflated: main/java/traffic_domain/bean/District.class
inflated: mapping/District.hbm.xml
这是hibernate.cfg.xml的一部分,它正在加载映射(在axtavt建议之后更改):
<mapping resource="traffic_domain/mapping/Access.hbm.xml"/>
<mapping resource="traffic_domain/mapping/Street.hbm.xml"/>
<mapping resource="traffic_domain/mapping/District.hbm.xml"/>
<mapping resource="traffic_domain/mapping/PostalCode.hbm.xml"/>
<mapping resource="traffic_domain/mapping/TrafficCondition.hbm.xml"/>
解决方法:
默认情况下,src / main / resources中的资源应该在构建过程中复制到目标/类中.但正如我在your previous question中提到的,这里的问题是以下几行:
<sourceDirectory>src</sourceDirectory>
由于这一行,Maven正在考虑src下的所有内容,因为源和主/资源被复制到目标/类.因此,在使用“默认布局”时,您仍然没有使用Maven的默认配置,而是将src / main / resources的内容复制到目标/类,而不包括main / resources.
所以,正如我在my answer中推荐的那样,使用Maven的默认设置(默认布局,默认配置),特别是如果你是Maven初学者:
>将Java源代码移动到src / main / java(并删除sourceDirectory元素)
我不知道Eclipse下的工作原理是什么……但你的POM显然是不正确的.
后续:你的项目还有一些问题:main / java不应该是包名的一部分,为什么资源最终会出现在jar的根目录?你能展示一下POM的最新版本吗?
关于Eclipse生产的jar,它可能正在工作,但我看到它时唯一看到的是一个巨大的混乱(重复文件,错误的Java包装等).这可能是由于Maven项目设置和Eclipse项目设置之间的差异造成的.
我不知道你是否使用m2eclipse,但这是我的建议. Eclipse下的项目设置需要与Maven项目设置保持一致,而目前却没有. m2eclipse可以通过从POM中导出设置来为您完成.
内容总结
以上是互联网集市为您收集整理的java – mvn install忽略hibernate映射文件全部内容,希望文章能够帮你解决java – mvn install忽略hibernate映射文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。