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

本文版权归做者全部,欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文链接,不然保留任何追究法律责任的权利。数据库

相关文章
相关标签/搜索