转自: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属性的

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

IDEA将项目打包为指定class文件的jar的更多相关文章

  1. 十六:SpringBoot-自定义启动页,项目打包和指定运行环境

    SpringBoot-自定义启动页,项目打包和指定运行环境 1.自定义启动页 2.打包配置 2.1 打包pom配置 2.2 多环境配置 3.环境测试接口 4.打包执行 4.1 指定模块打包 4.2 运 ...

  2. vue2.0 配置build项目打包目录、资源文件(assets\static)打包目录

    vue项目默认的打包路径:根目录下的dist文件夹下: 但是在项目开发中,我们肯定希望项目提交到svn目录或者git目录下,否则每次复制过去,太麻烦了: 那怎么配置打包路径呢?下面来看看: 我们找到打 ...

  3. vue项目打包,生成dist文件夹,如何修改文件夹的名字

    vue项目打包之后的dist文件目录是如下 如果想要修改dist或则static文件名称,需要打开config / index.js build: { // Template for index.ht ...

  4. 怎么将java项目打包成双击就可以运行的jar包---fatjar

    fatjar下载地址:http://pan.baidu.com/s/1cQ01o 下载fatJar插件,解压缩后是一个.../plugins/(net...)把plugins下面的(net..)文件夹 ...

  5. 将Java项目打包成可以独立运行的Jar包

    因为一直也没怎么用过Java的原因,所以以前本科上课的时候,在控制台下运行Java程序都是仅仅运行单个的没有第三方库依赖的情况下运行的 那种情况特别简单,只要输入Javac 文件名.java等到编译完 ...

  6. SpringBoot2.0 基础案例(17):自定义启动页,项目打包和指定运行环境

    本文源码 GitHub地址:知了一笑 https://github.com/cicadasmile/spring-boot-base 一.打包简介 springboot的打包方式有很多种.可以打war ...

  7. Maven项目打包时指定配置策略

    以数据库连接池的配置文件(db.properties)为例,一般的项目会有开发用数据库,测试用数据库,正式环境数据库三种配置. 以前的做法是拷贝成三份,注释掉其他了两份 # 开发用 jdbc.url ...

  8. netbeans 将项目打包生成单个可执行的 jar

    原文:netbeans 打包生成 jar 文件页里找到build.xml文件,打开在</project>前 加入以下代码保存之 <target name="package- ...

  9. 将Python项目打包成EXE可执行文件(单文件,多文件,包含图片)

    解决 将Python项目打包成EXE可执行文件(单文件,多文件,包含图片) 1.当我们写了一个Python的项目时,特别是一个GUI项目,我们特备希望它能成为一个在Windows系统可执行的EXE文件 ...

随机推荐

  1. flask 第九篇 蓝图 Blueprint

    蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看 ...

  2. Spring AOP:Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException

    1 报错 Exception encountered during context initialization - cancelling refresh attempt: org.springfra ...

  3. 【转载】Python tips: 什么是*args和**kwargs?

    转自Python tips: 什么是*args和**kwargs? 先来看个例子: def foo(*args, **kwargs): print 'args = ', args print 'kwa ...

  4. Android通讯-webSocket

    概述 上一篇简单的认识了Socket以及他的使用,在学习过程中看到了WebSocket的身影,于是乎百度了一把,这货也可以做全双工的网络通讯,而且是html5提出来的新东西!程序员嘛!就是要对新的东西 ...

  5. Docker的镜像制作与整套项目一键打包部署

    Dockerfile常用指令介绍 指令 描述 FROM 构建的新镜像是基于哪个镜像.例如:FROM centos:6 MAINTAINER 镜像维护者姓名或邮箱地址.例如:MAINTAINER Mr. ...

  6. 人才-T型人才:百科

    ylbtech-人才-T型人才:百科 T型人才是指按知识结构区分出来的一种新型人才类型.用字母“T”来表示他们的知识结构特点.“—”表示有广博的知识面,“|”表示知识的深度.两者的结合,既有较深的专业 ...

  7. python之scrapy爬取某集团招聘信息以及招聘详情

    1.定义爬取的字段items.py # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See do ...

  8. 关于java面试题

    java的优点: Java是一种跨平台,适合于分布式计算环境的面向对象编程语言. 具体来说,它具有如下特性: 简单性.面向对象.分布式.解释型.可靠.安全.平台无关.可移植.高性能.多线程.动态性等.

  9. 学一学Transfomer

    017年,Google发表论文<Attention is All You Need>,提出经典网络结构Transformer,全部采用Attention结构的方式,代替了传统的Encode ...

  10. iscsi-文件类型

    iSCSI简介(Internet SCSI): iSCSI 小型计算机系统接口,IBM公司研发,用于在IP网络上运行SCSI协议:解决了 SCSI需要直连存储设备的局限性:可以不停机扩展存储容量,iS ...