IDEA将项目打包为指定class文件的jar
转自: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的更多相关文章
- 十六:SpringBoot-自定义启动页,项目打包和指定运行环境
SpringBoot-自定义启动页,项目打包和指定运行环境 1.自定义启动页 2.打包配置 2.1 打包pom配置 2.2 多环境配置 3.环境测试接口 4.打包执行 4.1 指定模块打包 4.2 运 ...
- vue2.0 配置build项目打包目录、资源文件(assets\static)打包目录
vue项目默认的打包路径:根目录下的dist文件夹下: 但是在项目开发中,我们肯定希望项目提交到svn目录或者git目录下,否则每次复制过去,太麻烦了: 那怎么配置打包路径呢?下面来看看: 我们找到打 ...
- vue项目打包,生成dist文件夹,如何修改文件夹的名字
vue项目打包之后的dist文件目录是如下 如果想要修改dist或则static文件名称,需要打开config / index.js build: { // Template for index.ht ...
- 怎么将java项目打包成双击就可以运行的jar包---fatjar
fatjar下载地址:http://pan.baidu.com/s/1cQ01o 下载fatJar插件,解压缩后是一个.../plugins/(net...)把plugins下面的(net..)文件夹 ...
- 将Java项目打包成可以独立运行的Jar包
因为一直也没怎么用过Java的原因,所以以前本科上课的时候,在控制台下运行Java程序都是仅仅运行单个的没有第三方库依赖的情况下运行的 那种情况特别简单,只要输入Javac 文件名.java等到编译完 ...
- SpringBoot2.0 基础案例(17):自定义启动页,项目打包和指定运行环境
本文源码 GitHub地址:知了一笑 https://github.com/cicadasmile/spring-boot-base 一.打包简介 springboot的打包方式有很多种.可以打war ...
- Maven项目打包时指定配置策略
以数据库连接池的配置文件(db.properties)为例,一般的项目会有开发用数据库,测试用数据库,正式环境数据库三种配置. 以前的做法是拷贝成三份,注释掉其他了两份 # 开发用 jdbc.url ...
- netbeans 将项目打包生成单个可执行的 jar
原文:netbeans 打包生成 jar 文件页里找到build.xml文件,打开在</project>前 加入以下代码保存之 <target name="package- ...
- 将Python项目打包成EXE可执行文件(单文件,多文件,包含图片)
解决 将Python项目打包成EXE可执行文件(单文件,多文件,包含图片) 1.当我们写了一个Python的项目时,特别是一个GUI项目,我们特备希望它能成为一个在Windows系统可执行的EXE文件 ...
随机推荐
- Zookeeper系列(十三)Zookeeper的请求处理
作者:leesf 掌控之中,才会成功:掌控之外,注定失败. 出处:http://www.cnblogs.com/leesf456/p/6179118.html尊重原创,奇文共欣赏: 一.前言 在 ...
- 预处理、const、static与sizeof-内联函数与宏有什么区别
1:二者的区别如下: (1)内联函数在编译时展开,宏在预编译时展开. (2)在编译的时候,内联函数可以直接被镶嵌到目标代码中,而宏只是一个简单的文本替换. (3)内联函数可以完成诸如类型检测.语句是否 ...
- Leetcode题目分类整理
一.数组 8) 双指针 ---- 滑动窗口 例题: 3. Longest Substring Without Repeating Characters 描述:Given a string, find ...
- 谷歌guava缓存
简易缓存,可以设置时间的缓存 private static Cache<String,String> tokenCache = CacheBuilder.newBuilder().expi ...
- storm java.io.NotSerializableException
今天编写一个storm的topology,bolt的逻辑跟之前的类似. 为了减少重复代码,我建了个抽象基类,存放bolt的公共逻辑,设计了几个abstract方法,不同的逻辑部分由子类实现. 基类日志 ...
- 图解Python 【第二篇】:Python基础2
本节内容一览图 一.数据类型 1.数字 2 是一个整数的例子.长整数 不过是大一些的整数.3.23和52.3E-4是浮点数的例子.E标记表示10的幂.在这里,52.3E-4表示52.3 * 10-4. ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-2.使用Mybatis注解开发视频列表增删改查
笔记 2.使用Mybatis注解开发视频列表增删改查 讲解:使用Mybatis3.x注解方式 增删改查实操, 控制台打印sql语句 1.控制台打印sql语句 ...
- CACTI批量添加linux主机sh脚本
关于批量添加就三个文件:add_hosts.sh,ips.txt,thold_test.php,关于如何使用,更是简单 ./add_hosts.sh --add #执行批量工作./add_hosts. ...
- 【转】java获取当前年、月、日 、小时 、分钟、 秒、 毫秒
public class Test { /** * 英文简写(默认)如:2010-12-01 */ public static String FORMAT_SHORT = "yyyy-MM- ...
- Product - 产品经理 - 内容
特别说明 本文是已读书籍的学习笔记和内容摘要,原文内容有少部分改动,并添加一些相关信息,但总体不影响原文表达. - ISBN: 9787568041591 - https://book.douban. ...