1 - smart(Maven:Package,Install,&,Log4j2)

mvn package 時,增長以下命令-Dmaven.test.skip=truehtml

則表示package打包時,不執行也不編譯測試用例, mvn package -Dmaven.test.skip=true
若是是:     mvn package -DskipTests 則表示打包時不執行測試用例,但會編譯對應的測試用例輸出到相應的class文件至target/test-classes目錄下
maven :package 通常是將當前maven項目打包後輸出到Target目錄下,以下圖所示:
 
maven : install 則會將當前項目打包到對應的maven倉庫中,如圖
 
 
 
-------------------------------------------2018-5-14修改----------------------------------------
 
在打包爲jar包的時候,通常是會將src/main/java和src/main/resources下的文件打包到jar中,從目錄的生成角度來看則只是將WEB-INF下的classes數據進行了打包,其中包含class文件和resources的配置文件,以下圖截圖所示:
 
,對於webapp中的靜態文件卻通常不會被打包到jar文件中,那麼既然通常不會將靜態文件打包到jar包中,那麼阿里的Druid的jar包中是如何包含靜態文件的呢?相信用過Druid做爲項目的連接池的都清楚,Druid中內置的有圖形化頁面展現能夠查看項目中的數據庫鏈接狀態,請求url的反應快慢等信息,那麼在正常jar打包不能包含靜態資源文件的同時,Druid的jar中是如何包含靜態文件的呢?看其源碼即可知,
 
Druid jar中的文件形式爲,META-INF和com包以及support的包結構,其中比較有意思的是,靜態的html文件則是放置到support的包下面的,即druid的jar形式中,html的靜態資源文件並非放置到webapp下的,而是直接根據classpath路徑直接放到java的包下面的,
即src/main/java下面除了有java文件外還存放的有html靜態資源文件,因此在打包爲jar包後,則纔會存在有靜態的資源文件存在,那麼第二個問題則是,Druid按照上述所展現的文件路徑方式來看的話,的確是能夠正常存儲靜態資源文件的,那麼對於所產生出的日誌信息,Druid中是如何記錄的?1. druid中將所產生的日誌信息,存儲到json文件中,在html展現數據的時候,動態的從json文件中取出數據進行展現,2. 因爲druid長期的使用過程中,會產生不少的日誌數據,此時也能夠配置druid的日誌數據到對應的數據庫中,方便查詢和彙總,此時則須要配置部分的druid的文件,可參考github上的說明,github算是比較官方的介紹了。
  1. 經過打開Druid的監控頁面-->再打開瀏覽器的調試模式netWork查看當前頁面的發出請求,能夠看到頁面有請求當前項目路徑下的 ***.json 如datasource.json文件中的數據,而後再進行了數據的渲染,
  2. Druid中的內置監控頁面,下方會有一個廣告是內嵌的image src爲遠程的src地址圖片,在圖片的下放有幾個友情連接:
     
    其中,melin.iteye.com是對應一個博客連接,裏面有一些很不錯的文章能夠進行參考。
  3.  關於META-INF文件夾的做用和解釋:https://www.cnblogs.com/demingblog/p/5653844.html     https://blog.csdn.net/meijory/article/details/53573140
  4. https的解釋:https://blog.csdn.net/luocn99/article/details/39777707 也是來源於上述所提到的melin.iteye.com的博客中看到的 感受很不錯,記錄下來。
-------------------------------------------2018-5-14修改結束----------------------------------------
 
 
Log4j2的配置文件,log4j2.xml通常是放置到classpath目錄下,便可自動讀取該路徑下的該配置文件,不過能夠在web.xml中配置log4j2的配置文件路徑,但通常遵照規則和約定則直接放到classpath下便可,
log4j2的配置文件名稱通常爲,
 
 
1.    配置文件命名與存儲位置(Log4J沒有默認的配置文件)
 
系統選擇configuration文件的優先級以下(放在src文件夾):
 
classpath下名爲 log4j-test.json 或者log4j-test.jsn文件
 
classpath下名爲 log4j2-test.xml
 
classpath下名爲 log4j.json 或者log4j.jsn文件
 
classpath下名爲 log4j2.xml
 
classPath所對應的具體路徑是指的:
 
1)   src不是classpath,WEB-INF/classes,lib纔是classpath,WEB-INF/是資源目錄, 客戶端不能直接訪問。
 
2)   WEB-INF/classes目錄存放src目錄java文件編譯以後的class文件,xml、properties等資源配置文件,這是一個定位資源的入口。
 
3)   lib和classes同屬classpath,二者的訪問優先級爲: lib>classes。
 
參考連接:
apache-官網地址
針對Web.xml版本爲2.5和3.0的log4j2的不用配置的設置,在apache的log4j2的官網中也有說明,
English 不太好的能夠翻譯後查看,意思相對差很少,分別是針對web.xml版本爲3.0時,能夠設置
isLog4jAutoInitializationDisabled爲true,表示不自動加載log4j2的配置,
其2也是很重要的一點是,若是設置爲不自動加載log4j2的配置則必需要將配置文件放到
Spring的加載文件以前,不然若是使用的不是web.xml 3.0的版本,且isLog4jAutoInitializationDisabled設置爲false,即自動加載那麼將會出現一些啓動時的錯誤,以及日誌文件輸出時找不到等錯誤,若是使用的是,web.xml 3.0的版本,且isLog4jAutoInitializationDisabled爲false自動加載,則此時關於 Listener和 Filter相關的配置則不須要在web.xml中配置,由於在sevlet3.0以上會被log4j.web-2.4.1.jar自動初始化,因此 哦,若是servlet版本不達標,則要手動的配置log4j2的一些監聽和過濾器便可嘍。下面提供一些參考連接
 
servlet2.5時的log4j2的配置,
針對servlet3.0版本時的log4j2配置,
,不過通常我以爲仍是不管servlet版本爲多少,不過log4j2必需要求servlet版本大於2.4才ok,
可是我以爲只要servlet版本大於2.4,即2.5或者3.0更高,我建議仍是手動的在web.xml中配置一下
log4j2的一些配置纔是最好,好比指定log4j2的名稱,配置爲不可自動初始化加載log4j2,配置一下
log4j2的過濾器,監聽等參數比較好一些,具體能夠參考 smart-sh的配置lou le,
 

版權聲明java


做者:Arnold zhaogit

出處:博客園Arnold的技術博客--https://www.cnblogs.com/zh94/github

您的支持是對博主最大的鼓勵,感謝您的認真閱讀。web

本文版權歸做者全部,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留任何追究法律責任的權利。數據庫

相關文章
相關標籤/搜索