亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Maven assembly打包文件被覆蓋問題

發布時間:2020-07-02 20:43:18 來源:網絡 閱讀:2309 作者:zlfwmm 欄目:開發技術

Mavenassembly插件使用:

最近在做一個小工程,利用java啟動運行。

為了簡單方便使用運行,利用mavenassembly將需要使用的jar都打包到一個jar中。這樣無論拷貝到哪里,只有運行就可以,不用需要任何配置。

配置時指定mainClass,運行javamain函數時則可以不用指定包含main函數的類路徑名。如運行下面的jar文件則非常簡單方便(后臺運行):nohup java -jar CalculateScore.jar &

第一步:需要在pomxml中添加配置;

第二步:配置mavenRun ConfigurationsGoals配置成assembly:assembly即可。

上面的過程一直在使用,很正常。但最近的小應用卻出了問題:

打出的jar包不產生日志文件,具體說是不生成log4j的日志信息,程序運行正常也不報錯,任何提示都沒有。

 

網上各種查詢,沒有結果。為了解決問題就各種嘗試。

 

腦子里一直有疑問:以前的都正常使用,都可以打印日志,為什么這個就不行呢?

各種嘗試都不行,于是就反編譯jar包來看。結果發現log4j.properties文件不是自己的那個文件,不知道是哪個包里的,而自己程序中都使用的Logger.getLogger(name)的形式,所以都無法打印日志信息。

 

問題來了,為什么不是自己的那個log4j配置文件呢?

Maven打包的時候Console中都有日志信息,仔細查看發現,多次提示log4j的配置已經加入并跳過。

于是猜想:一定是打包的過程中,先加載了其他jar中的log4j的配置文件,而以后的包括自己應用中的log4j的配置文件都被忽略了。

 

可是問題又來了,自己以前使用同樣的方式,也使用了很多第三方包,都包含有log4j的配置文件,為什么都沒有問題呢?查看以前的打的包,log4j的配置文件都是自己工程中配置的,這是為什么呢?

 

于是就開始比較打包的配置過程是否有差別,又有新發現:

Maven打包的Run Configurations配置中有項Base directory,這里配置有問題。

如下面的兩張圖所示:

如果Base directory中配置的是通過Browse Workspace選擇的工程就會產生上面的問題;

如果Base directory中配置的是通過Browse File System選擇的文件地址路徑就不會產生上面的問題。

具體為什么會出現這種情況,有待研究。

 

會產生問題的配置方式:

Maven assembly打包文件被覆蓋問題

 

不會產生問題的配置方式

Maven assembly打包文件被覆蓋問題


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

恭城| 宜黄县| 军事| 长阳| 台东县| 湘潭县| 大冶市| 田林县| 南康市| 遵化市| 林周县| 周宁县| 那坡县| 青海省| 林口县| 曲水县| 政和县| 蒙自县| 丰台区| 磐石市| 砀山县| 瑞金市| 莆田市| 龙山县| 奉新县| 新泰市| 长葛市| 旬邑县| 鹤山市| 石门县| 缙云县| 台东县| 岚皋县| 通许县| 五原县| 张掖市| 新田县| 晋中市| 琼海市| 内丘县| 沐川县|