簡體   English   中英

如何使用hibernate配置為maven eclipse項目制作runnable jar文件

[英]How to make the runnable jar file for a maven eclipse project with hibernate configuration

我嘗試使用hibernate配置從我的eclipse maven項目制作一個jar文件。

這是我的項目的結構,我在resources /和src / main / resources /文件夾中都有文件hibernate.cfg.xml。 我通過從導出選項中選擇runnable jar文件來制作jar文件。 (由於鏈接的幫助)

這是我在運行可執行jar文件時得到的錯誤:

ehsanik$ java -jar oh_oh.jar 
log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.ExceptionInInitializerError
    at com.jvmhub.tutorial.App.StartDB(App.java:25)
    at CopyOfMain.main(CopyOfMain.java:7)
    ... 5 more
Caused by: org.hibernate.HibernateException: /hibernate.cfg.xml not found
    at org.hibernate.internal.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:173)
    at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1940)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1921)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1901)
    at com.jvmhub.tutorial.App.StartDB(App.java:19)
    ... 6 more

TL; DR-解決方案

將您的hibernate.cfg.xml放入src/main/resource 然后不要通過eclipse的導出功能導出項目。 而是使用maven-assembly-plugin來創建可執行jar。 使用mvn package assembly:single運行mvn package assembly:single

什么是日食,為什么不起作用

如果在eclipse選項中選擇“export”,則編譯的類(由eclipse編譯)將被放入該jar中。 但Eclipse對Maven標准目錄布局一無所知。 它只會將文件保留在其文件夾中。 另一方面,Maven會將所有資源從src/main/resources -folder復制到jar文件的根目錄。

如何閱讀您看到的錯誤

第一個錯誤:

log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.

這意味着,log4j沒有找到log4j.properties或.xml。 它沒有配置。 這是第一個暗示,你的構建是不成功的。

第二個錯誤:

Caused by: org.hibernate.HibernateException: /hibernate.cfg.xml not found

第二個提示,你的資源不在庫所要求的位置(在這種情況下是休眠)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM