转自:https://blog.csdn.net/makang456/article/details/86699375

【背景】

    公司最近要和某大公司合作,将本公司的产品提供给其它公司单独部署售卖,为了让产品中重要的服务具备防君子不防小人的作用,于是就写了一个单独的服务,通过aop拦截所有请求验证颁发的证书从而达到效果。

    这个单独验证的服务需要以jar的形式嵌入到服务中,其中为了避免jar包的版本冲突问题,所以需要将校验服务打包为只包含本项目中对应class文件的jar(不包含任何maven依赖的jar)。

    注:这样所有第三方jar以及对应的版本全都交由最终引入验证服务jar的服务去管理(ps:编写SDK的时候一般也通过这样的方式)
【环境】

    idea版本:2017.1

    jdk版本:1.8

    windows版本:win8

    注:小编这个验证服务为maven项目
【过程】

    第一步:先通过idea中的install将项目中的java文件编译为class文件

    第二步:File——>Project Structure——>Project Settings——>Artifacts——>单击绿色加号——>JAR——>Empty

        

    第三步:创建包文件夹,要和项目中的包结构一致(因为每个class的最上面package已经在项目中有明确指向了)

        

    第四步:加入自己指定要打的class文件(该文件在第一步编辑完成之后的class文件中寻找),不同的包中的class需要先建立包结构再分别选择

        

    第五步:执行编译打包出对应的jar

        
【总结】

    小编首先收获的是慢慢的喜悦与成就感,下面就列举一下自己的成长总结:

    1.对IDEA将项目打包为指定class文件的jar有了深刻的理解(和自己之前写的IDEA中添加普通web项目形成对比)

    2.针对于在遇到问题提取百度搜索关键词有了深入思考

    3.遇到问题到最终相信自己能够解决问题有了更加坚定的信念
【扩展】

    如果要写一个jar工具,并且将依赖的包都集成进去的话请参考:解决问题--maven项目和需要依赖打成一个jar包(亲测好用)

    如果需要控制引入的jar的周期可以修改pom文件对应jar的scope标签,详情参考:maven中scope属性的

    注:这两个扩展内容小编没有自测,只是在查询前期针对于概念不太明确,所以这里就做为参考内容先放到这里,以后需要的话会详细研究测试再出相关博文。

最新文章

  1. C# Lambda表达式
  2. windows server 2012将计算机、回收站、文档等图标添加到桌面
  3. 如何创建Asp.net MVC ViewModel
  4. 一次失败的面试——IBM电话面试
  5. BZOJ2005: [Noi2010]能量采集 莫比乌斯反演的另一种方法——nlogn筛
  6. hadoop 异常处理实例(一)hadoop内存配置项
  7. HTML动画(难点)
  8. Android网络编程之Http通信
  9. android屏蔽home键的实现
  10. uva12716 GCD XOR
  11. POI生成word文档完整案例及讲解
  12. word2vec概述
  13. ECharts基础
  14. swust oj 956
  15. ::before和::after伪元素的妙用
  16. u-boot移植(十)---代码修改---支持nor flash
  17. CF 160D Edges in MST 最小生成树的性质,寻桥,缩点,批量处理 难度:3
  18. Java 并发编程——Executor框架和线程池原理
  19. Android解析WindowManagerService(一)WMS的诞生
  20. c# 文件日志处理 需要log4net配置

热门文章

  1. zstu 4237 马里奥的求救——(单调队列DP)
  2. L1-049 天梯赛座位分配 (20 分)
  3. Postgresql 直接在查询结果中生成唯一ID
  4. 数据可视化界面UI设计大屏展示
  5. Fast R-CNN论文阅读摘要
  6. 修改vscode终端样式
  7. OpenWrt下如何配置网络?
  8. 微信一键登录(微信OAuth2.0)
  9. springMVC获取来访地址referer
  10. SAP JCO3配置