mvn package 时,增加如下命令-Dmaven.test.skip=true

则表示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,
 

版权声明


作者:Arnold zhao

出处:博客园Arnold的技术博客--https://www.cnblogs.com/zh94/

您的支持是对博主最大的鼓励,感谢您的认真阅读。

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留任何追究法律责任的权利。

1 - smart(Maven:Package,Install,&,Log4j2)的更多相关文章

  1. maven package install deploy

    1.maven package:打包到本项目,一般是在项目target目录下. 如果a项目依赖于b项目,打包b项目时,只会打包到b项目下target下,编译a项目时就会报错,因为找不到所依赖的b项目, ...

  2. maven国内镜像(maven下载慢的解决方法)

    Maven是当前流行的项目管理工具,但官方的库在国外经常连不上,连上也下载速度很慢.国内oschina的maven服务器很早之前就关了.今天发现阿里云的一个中央仓库,亲测可用. <mirror& ...

  3. Maven国内阿里镜像(Maven下载慢的解决方法)

    Maven是当前流行的项目管理工具,但官方的库在国外经常连不上,连上也下载速度很慢.国内oschina的maven服务器很早之前就关了.今天发现阿里云的一个中央仓库,亲测可用. <mirror& ...

  4. maven笔记(maven使用与安装,eclipse中maven的配置,maven项目的创建)

    一.初识maven 1.maven是什么? 他是一个项目管理器,配置好pom配置文件后,maven会管理项目的依赖文件等,当项目用到外部jar包时,maven帮助我们去网上下载并打包发到Tomcat中 ...

  5. maven package install deploy区别

    package 命令完成了项目编译.单元测试.打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库install 命令完成了项目编译.单元测 ...

  6. 分布式架构--第一篇--项目拆分(maven命令生成多模块项目)

    预览生成的项目结构: ying-yue-parent // 顶级总编译控制模块 ying-yue-lib // jar模块 ying-yue-model // 模型对象模块 ying-yue-dao ...

  7. eclipse问题解决(maven插件link方式安装失败)

    一.link方式安装eclipse的一款插件:maven     (附:若不熟悉link方式,则进入此处:link方式安装eclipse插件) 其间,只弹出警告,大概意思是:部分内容,未经授权,谨慎使 ...

  8. 关于云Linux部署tomcat服务器(Maven的多模块war包)

    博主的运行环境: 电脑系统: Linux mint 18 JDK版本: java version "1.8.0_171" Maven版本:  Apache Maven 3.5.3 ...

  9. Eclipse.ini參数设置(Maven Integration for Eclipse JDK Warning)

    安装EclipseMaven插件后,Eclipse启动问题:Maven Integration for Eclipse JDK Warning.  解决方法: 1. 设置Eclipse使用的JRE为本 ...

随机推荐

  1. Java图形界面开发—简易记事本

          在学习了Java事件之后,自己写了一个极其简单的记事本.用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener. 代码如下: ...

  2. 【Mood-14】龙虎榜 活跃在github中的1000位中国开发者

    Last cache created on 2015-01-07 by Github API v3. ♥ made by hzlzh just for fun. Rank Gravatar usern ...

  3. https验证新发现-老知识

    HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier); 可以设置https全局的域名校验规则 HttpsURLConnecti ...

  4. Visual Studio 2015简体中文版

    Visual Studio  2015简体中文版(企业版) http://download.microsoft.com/download/B/8/F/B8F1470D-2396-4E7A-83F5-A ...

  5. pat乙级1045

    从左到右扫描时记录扫描到当前下标为止的最大值,如果当前元素大于这个最大值,那么它就大于它左边的所有值.同理,从右到左扫描记录扫描到当前下标为止的最小值,如果当前元素小于这个最大小值,那么它就小于它右边 ...

  6. python_38_try-except异常处理语句及raise的使用

    # i=10 # print(30/(i-10)) # #程序将会出现以下报错信息 # # Traceback (most recent call last): # # File "C:/U ...

  7. oo作业第四单元总结暨结课总结

    目录 一.第四单元作业架构设计 1.第一次UML作业架构设计 2.第二次UML作业架构设计 二.架构设计和OO方法理解演进 三.测试理解与实践的演进 四.课程收获总结 五.三个具体改进建议 一.第四单 ...

  8. 黑马基础阶段测试题:创建一个存储字符串的集合list,向list中添加以下字符串:”C++”、”Java”、” Python”、”大数据与云计算”。遍历集合,将长度小于5的字符串从集合中删除,删除成功后,打印集合中的所有元素

    package com.swift; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; ...

  9. Java算法面试题:编写一个程序,将e:\neck目录下的所有.java文件复制到e:\jpg目录下,并将原来文件的扩展名从.java改为.jpg

    package com.swift; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; i ...

  10. react的constructor和super的具体含义和使用

    1.constructor( )-----super( )的基本含义 这是ES6对类的默认方法,通过 new 命令生成对象实例时自动调用该方法.并且,该方法是类中必须有的,如果没有显示定义,则会默认添 ...