one-jar maven 插件的JarClassLoader Warning日志问题

onejar-maven-plugin 项目 git https://github.com/jolira/onejar-maven-plugin 

onejar-boot 项目 git https://github.com/Kevin-Lee/one-jar-boot 

=====================================================

使用one-jar的maven插件打包方便是比较方便了。但是也有一些问题

问题主要还是无论是maven插件还是one-jar-boot项目都已经没人在更新了。

maven中央仓库种能找到的最新的是1.4.4  ,年份是2011年的。。。

github上 onejar-maven-plugin 项目地址 https://github.com/jolira/onejar-maven-plugin  最新版本是1.4.4 用的最新的one-jar-boot jar是0.97

onejar-boot 项目 git https://github.com/Kevin-Lee/one-jar-boot  最新的版本是0.9.3

其中0.97.3之前的warn日志都是直接通过system.err.println()方式直接输出的。之后的版本0.97.3也是一样。只是通过封装了一个Logger类来做处理(好处是可以通过one-jar.silent=true 来避免任何输出) java -jar -Done-jar.silent=true xxx.jar 运行打包好的jar就可以避免输出one-jar相关的信息。

one-jar使用的都是java自带的std,err输出。

于是有会输出warning日志的问题。。。。。

JarClassLoader: Warning:xxxx

参卡  http://www.it1352.com/988624.html

有解决方法么? 当然有。  There is no way to do this without modifying the source code

改源码。。。。。。surprise!!!

1.下载one-jar-boot-0.97.3.jar 放入one-jar-plugin项目的resources中。

    顺便放个onejar的配置文件。里面放一句  one-jar.silent=true

2.编译打包(注意打包成1.4.4)

3.在你需要使用onejar打包的项目中引入one-jar插件1.4.4(最新的了)

     用上面打包好的新jar替换掉maven仓库中自动下载下来的jar(新瓶装旧酒),maven默认先找本地仓库的。

4.用新插件打包就可以得到一个不会输出warning日志的jar了。但是还是有问题的。

   会输出  [Boot] INFO:  loading properties from one-jar.properties

  因为Boot类在加载那个配置文件时候还没读取配置文件,所以配置不生效的。

  只能通过命令行方式  java -jar -Done-jar.silent=true xx.jar 来运行jar。。。。。

   嗯,这样的话,就不需要在插件的源码里放个properties文件了。源码也不需要改动的。。。所以听ball-ache的。

 

 

主要原因还是代码没人更新了,其实还有其他方法,类似于dubbox ,就是自己开个分支去维护,然后推中央仓库中,不过会比较麻烦,毕竟没推过。。。。

  

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值