Maven的assembly插件使用:

最近在做一个小工程,利用java启动运行。

为了简单方便使用运行,利用maven的assembly将需要使用的jar都打包到一个jar中。这样无论拷贝到哪里,只有运行就可以,不用需要任何配置。

配置时指定mainClass,运行java的main函数时则可以不用指定包含main函数的类路径名。如运行下面的jar文件则非常简单方便(后台运行):nohup java -jar CalculateScore.jar &

第一步:需要在pom的xml中添加配置;

第二步:配置maven的Run Configurations,Goals配置成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打包文件被覆盖问题相关推荐

  1. maven assembly打包zip报错 You must set at least one file.

    文章目录 maven assembly打包Error creating assembly archive pack: You must set at least one file. maven ass ...

  2. idea 中maven assembly 打包项目

    使用assembly插件来打包项目: 1>在pom.xml中配置assembly插件 <properties><project.build.sourceEncoding> ...

  3. maven assembly打包插件详解

    定义 来自官方的定义: Maven Assembly Plugin relies on the provided assembly descriptors to dictate its executi ...

  4. IDEA MAVEN 项目 打包文件到指定目录

    像上一篇文章,我们提到的,IDEA MAVEN struts项目中,如果我们把 struts.xml 文件放在 src 目录下,编译的时候,将无法打包到 *\WEB-INF\classes* 路径下, ...

  5. maven设置打包文件的名称

    pom.xml 文件<build>标签中添加即可. 新增<finalName>app</finalName> <> 代码如下: <build> ...

  6. assembly : maven assembly打包报错:maven to create assembly : unable to obtain archiver for extension

    原因是没有添加 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven ...

  7. Spring Boot 使用 Maven assembly 插件打包

    文章目录 1 摘要 2 Maven 核心依赖与配置 2.1 pom.xml 配置 2.2 assembly 配置信息 3 启动与停止脚本 3.1 启动脚本 3.2 停止脚本 4 推荐参考资料 5 Gi ...

  8. java assembly 打包_maven 使用assembly 进行打包的方法

    1. pom 中添加assembly 插件 要使用assembly 进项编译打包, 首先主要在pom 中的build中添加插件信息, 具体如图下所示: ${project.artifactId} sr ...

  9. maven 的 pom 文件与打包详解

    setting.xml 是全局级别的配置文件,主要用于配置 maven 的运行环境等一系列通用的属性. pom.xml 是项目级别的配置文件 . pom 作为项目对象模型.通过 xml 表示 mave ...

最新文章

  1. yolov配置之:cuda、 cudnn安装
  2. Laravel模板事项
  3. 设计模式之 中介者模式
  4. 下载不了python_Python的下载与安装
  5. GCD HDU - 1695
  6. 训练大型神经网络方法总结
  7. 计算机应用技术的历史与现状,浅析计算机应用技术的现状及发展趋势
  8. 13. Magento 后台top栏开发(二)
  9. kali linux 黑别人电脑,如何使用 Kali Linux 黑掉 Windows
  10. dnf丢失clientbase_clientbase.dll丢失
  11. 免费的office软件哪个好用
  12. 下厨房内部孵化项目——懒饭产品体验分析报告
  13. 好玩又赚钱的链游有哪些?
  14. ldo低压差线性稳压器电路解析
  15. spss 通径分析_使用SPSS线性回归实现通径分析的方法-学习资料.pdf
  16. 小游戏开发指南及过程中的难点问题
  17. 数学建模-分类模型(基于logistic回归)
  18. 【老沙讲坛】系列之非技术面试题汇总目录
  19. 如何使用浏览器对网络请求编辑重发(Edit and Resent) 以及: fetch API 中 ReadablleStream 的打印方法
  20. 两输入单输出的模糊控制器

热门文章

  1. 中国独创羲和室内高精导航 技术领先全球
  2. 如何让电脑运行速度变快
  3. 加勒比海盗船——最优解转载问题c++
  4. 全国22家奶粉企业69批次产品检出三聚氰胺
  5. 物联网是大家都看好的创业方向
  6. Errorcode? Thread1: EXC_BAD_ACCESS (code=EXCi386_GPFLT)
  7. 看看安卓开发者在APP推广路途中是如何被金山“恶霸”所“黑打”的!
  8. 外国男子在北京抢车后连撞4车和1名行人-砍伤-外国男子-菜刀
  9. 毕业生社保、档案和户口详解 2
  10. QMC5883L磁力计驱动