问题背景: 项目组发现线上版本问题后,定位是由于项目依赖的某个jar包中有个小BUG. 解决方案: 在修改了对应的java文件后,编译出对应的class文件.从生产环境下载项目jar包,解压后,找到对应的依赖jar包,使用好压软件打开,用修改后的class文件覆盖原来的文件. 然后使用jar -cf…
----------------------------------------------------------------- 原创博文,如需转载请注明出处! 博主:疲惫的豆豆 链接:http://www.cnblogs.com/dzblog/p/6913809.html ----------------------------------------------------------------- 目标: 将依赖的第三方jar包打进去 方法: maven-assembly-plugin…
1.在IDEA的pom文件中有如下配置的,打包出来的是可执行jar包,可执行jar包不能作为依赖. <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <executable>tr…
springboot项目,打包时携带所有依赖 本文主要解决springboot打包时,如何设置才能把当前项目的所有依赖都打进去. Springboot 的自带spring-boot-maven-plugin插件打包是不携带它所有的依赖的,但有时候会有需求需要把依赖一起打进去,比如需要打成可执行jar包. 如果打包需要加入依赖,可以使用下面这个插件,该插件最后打出来的jar包有两个,分别是不带jar-with-dependencies后缀的,和带jar-with-dependencies后缀的,后…
Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图 2017年04月05日 10:53:13 李学凯 阅读数:104997更多 所属专栏: Intellij Idea   版权声明:觉得此文有用的,不嫌麻烦的,就留个言呐,或者点个赞呐(额,就是文章底部的“顶”啦),要是嫌弃麻烦呢,也麻烦点个赞嘛,要是实在不想点赞呢,也不是不可以. 但是,你要是想踩一脚呢,那还是赶紧,马上,快快的闪人. 小心我手里三十米长的大刀. 哼哼.想想都怕 !!! https://blog.cs…
Maven 组件界面介绍 如上图标注 1 所示,为常用的 Maven 工具栏,其中最常用的有: 第一个按钮:Reimport All Maven Projects 表示根据 pom.xml 重新载入项目.一般单我们在 pom.xml 添加了依赖包或是插件的时候,发现标注 4 的依赖区中没有看到最新写的依赖的话,可以尝试点击此按钮进行项目的重新载入. 第六个按钮:Execute Maven Goal 弹出可执行的 Maven 命令的输入框.有些情况下我们需要通过书写某些执行命令来构建项目,就可以通…
前言: 有时候在项目开发中,需要很多依赖的 jar 包,其中依赖的 jar 包也会依赖其他的 jar 包,导致jar 包的管理很容易不全,以下有两种方法可以规避这个问题. 一.在pom.xml 文件中配置,将依赖的 jar 包放到指定的文件夹中 在 pom.xml 的 build-plugins 节点上添加以下配置即可 <!-- 将项目的依赖包复制到 target/lib --> <plugin> <groupId>org.apache.maven.plugins<…
序:在开发storm项目时,提交项目jar包当把依赖的第三方jar包都打进去提交storm集群启动时报了发现多个同名的文件错误由此开始了一段对jar包的深刻理解之路. java.lang.RuntimeException: Found multiple defaults.yaml resources. You're probably bundling the Storm jars with your topology jar. [jar:file:/home/hadoop/app/storm/l…
maven dependencies中并不会删除 以下方法maven dependencies中并不会删除,可能程序引入的时候,会去掉这种依赖(猜的) 解释: 就是说项目中要用到某一个a.jar包,通过maven引入了之后,也自动的导入了该jar包所依赖的包,这里就会存在一个问题, 如果a.jar包依赖b.jar这个项目的1.0版本,可是我的项目中已经有b.jar这个项目2.0的版本了,这里就会造成冲突,解决的办 法是去除a.jar包依赖b.jar这个项目的1.0版本的依赖关系,让项目使用我已有…
Java项目导出为jar包+导出第三方jar包+使用命令行调用+传参 一.打包 情况1:不需要向程序传参数,并且程序没有使用第三方jar包 Eclipse上导出jar: 然后选择一个java文件作为入库,需要带main()主函数: 情况2:向程序传参数,并且程序没有使用第三方jar包 这种情形下打包和情况1是一样的 情况3:程序使用了第三方jar包 这种情况下的打包要复杂一些,需要把第三方jar包一起导出,可以使用eclipse的插件fat jar,很简便,但是fat jar只支持eclipse…
Java项目发布时,配置文件不像.net项目一样与工程路径保持一致,而是直接包含在了jar包中,此时要修改就没那么方便了,我们可以将配置文件从jar包抽离出来,修改完之后再写入Jar包即可, 也没那么复杂,直接两个bat脚本搞定:(bat脚本需放于jar包同级目录) 1.抽离: @echo ************************** 提取开始 ************************** @echo off %切换盘符% cd %~dp0 %提取文件中的配置文件% %如果不知道…
解释:就是说项目中要用到某一个a.jar包,通过maven引入了之后,也自动的导入了该jar包所依赖的包,这里就会存在一个问题,如果a.jar包依赖b.jar这个项目的1.0版本,可是我的项目中已经有b.jar这个项目2.0的版本了,这里就会造成冲突,解决的办法是去除a.jar包依赖b.jar这个项目的1.0版本的依赖关系,让项目使用我已有的包. 最近搭一个springmvc4.x的maven环境,由于要用到webserice,打算整合jersey做,在导入jersey-spring.jar时出…
转载自: https://www.oschina.net/question/2272552_2269641 https://stackoverflow.com/questions/25869428/classpath-resource-not-found-when-running-as-jar 几个实现方式: String data = ""; ClassPathResource cpr = new ClassPathResource("static/file.txt&quo…
前言 Java的跨平台功能听起来很诱人可口,号称"Write Once,Run Everywhere",实际上是"Run Once,Debug Everywh"... 在实际开发过程中还是会遇到各种各样的坑的,刚刚解决了一系列问题,特地写个文章总结一下. 使用Gradle构建Jar包 感谢万能的Gradle,极大提高了Java开发的生产力- 在Gradle中生成jar包可以使用官方的插件:application 来简单生成Jar包,同时还有多种不同的配置可以自定义,…
java 执行 jar 包中的 main 方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar执行后总是运行指定的主方法,如果 jar 中有多个 main 方法,那么如何运行指定的 main 方法呢?用下面的命令试试看: java -classpath ****.jar ****.****.className [args] “****.****”表示“包名”:“className”表示“类名”:“[args]”表示传入的参数: 直接运行…
cocos项目导入其它源文件时加入依赖库时,头文件提示找不到文件夹中的文件解决方法: 选择项目属性->c/c++->常规,在附加包括项目中加上对应的文件夹 cocos test项目的库(所有): ..\Classes;$(EngineRoot);$(EngineRoot)cocos;$(EngineRoot)cocos\editor-support;$(EngineRoot)cocos\audio\include;$(EngineRoot) cocos\network;$(EngineRoot…
在IDE下调试怎么也没有发现问题,但是部署到服务器上,提示找不到资源,找了半天资料总算是找到了原因: Jar包中的资源加载不能使用File方式,只能使用InputStream方式读取.知道原因就好解决了,如下: try { URL url = ScoreLoadUtil.class.getClassLoader().getResource("LiangXingScoreDic");//这里不要加classpath: ,否则也是找不到 List<String> list =…
经常遇到这样的问题,需要修改jar包中的方法.应该如何做? 1.有些很人性化的框架jar包,比如SpringSecurity,可以修改配置文件指定一个新建的类,让类实现Jar包中的对应的接口就好了. 2.大部分的jar包都不会有这么方便的功能的.有一个简单的办法就是,在项目中建一相同路径相同名称的文件,当项目启动的时候,会优先使用本地编写的类,覆盖掉jar包中的内容.也可以是xml文件,properties属性文件. 3.还有一部份就算这样,在项目启动以后还是会调用jar包中的方法,我在使用gr…
有些时候你对第三方得到jar包中的类并不是很满意,想根据实际情况做一些扩展.如果说第三方的jar包已经提供了一些可扩展的类,比如提供了Interceptor,Filter或者其他的类,那么使用原生的比较保险一些.但是如果说并没有提供这些,那就要走一些不寻常的路.这里我总结了一些可行的方法,有的优雅,有的则是不得已而为之的. 一.继承你想要扩展的类,重写想要扩展的方法 这种做法是比较好的,符合面向对象的思想.另外动作比较小,风险也不会很大.但是这种方法有个前提是,被扩展的类在扩展点能用这个子类去替…
在开发过程中有时会用到maven仓库里没有的jar包或者本地的jar包,这时没办法通过pom直接引入,那么该怎么解决呢 一般有两种方法 第一种是将本地jar包安装在本地maven库 第二种是将本地jar包放入项目目录中 这篇文章主要讲第二种方式,这又分两种情况,一种是打包jar包,第二种是打包war包 jar包 先看看jar包的结构   用压缩工具打开一个jar包   打包后jar包的路径在BOOT-INF\lib目录下 在项目目录中创建个文件夹用来存放jar包   pom文件中加入如下内容 <…
前言 SpringBoot微服务已成为业界主流,从开发到部署都非常省时省力,但是最近小明开发时遇到一个问题:在代码中读取资源文件(比如word文档.导出模版等),本地开发时可以正常读取 ,但是,当我们打成jar包发布到服务器后,再次执行程序时就会抛出找不到文件的异常. 背景 这个问题是在一次使用freemarker模版引擎导出word报告时发现的.大概说一下docx导出java实现思路:导出word的文档格式为docx,事先准备好一个排好版的docx文档作为模版,读取解析该模版,将其中的静态资源…
部署tomcat也是类似的,但是需要注意项目配置的路径,或者直接将项目放到webapp的ROOT目录下. 使用工具:intelliJ IDEA2016.3, jdk1.8 ,weblogic12 一 使用idea创建springboot项目 File->New ->Project  选择jdk版本,如果下拉框中没有可供选择的jdk1.8,点击New按钮找到Jdk1.8安装目录  填写project信息,可根据需要修改 (注意:Packaging为jar,Java Version为1.8)  根…
一. SpringBoot内嵌容器的部署方式 SpringBoot内部默认提供内嵌的tomcat容器,所以可以直接打成jar包,丢到服务器上的任何一个目录,然后在当前目录下执行java -jar demo.jar即可运行,但是这种方式的运行退出进程就结束了.如果想在后台可以运行,则需要执行 java -jar demo.jar > log_demo.file 2>&1 & 即可在后台运行该服务了,log_demo.file是日志文件.如需停止该进程 执行ps -ef|grep…
将springboot项目打包成war,并且部署到tomcat.比较麻烦,自己踩的坑也比较多.算了一下,找bug的时间,有两天熬到凌晨2点. 修改pom.xml使得打包成war <groupId>com.yanzhen</groupId> <artifactId>dormitory</artifactId> <version>0.0.1-SNAPSHOT</version> <description>Demo projec…
springboot 带有内置Tomcat 服务器,可以直接将项目打包成jar运行,运行命令为: java -jar demo.jar 但是如果在需要把项目达成war包该怎么办呢?下面是将springboot项目部署为war项目的一些步骤:1.首先 在pom.xml中将打包形式 jar 修改为war <packaging>war</packaging> 2.在pom.xml文件中添加下面的依赖: <dependency> <groupId>org.sprin…
一.WAR包 1.与JAR包类似,是将java类(编译好的.class)和Web资源,压缩后生成压缩包. 2. 与JAR相比,多了WEB-INF文件夹,其它多出来的内容基本都是Web资源 WEB-INF中,通常有web.xml(部署描述符)文件 3.所有java源代码编译之后生成.class文件都在WEB-INF/classes中 4.WAR用来做应用的首次部署或全量部署 二.项目部署到Tomcat 1.怎么在服务器上找到Tomcat的安装位置 方法1:使用命令行打印   echo%CATLIN…
1.我jar包在linux的目录为/a/bbb.jar         正常情况下,使用在/a目录下使用  java -jar bbb.jar 可以直接运行该jar包的项目,运行成功之后使用crtl+c可以退出项目运行,或者直接关闭连接窗口,项目也会停止运行:         2.使jar包在后台一直运行的方法          为了满足客户随时都可以访问项目的需求,把项目修改为在后台一直运行.在/a目录下执行 nohup java -jar bbb.jar & 即可.当前目录下会生成一个noh…
首先,需要添加Tomcat启动依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> 其次,需要编写Servlet启动类. 该启动类继承SpringBootServlet…
(1)项目导入JAR包:1.在项目目录里建立一个libs目录,将外部jar包拷贝在里面.2.右键点击项目,Bulid Path->Configure Build Path3.在设置Libraies项,选择刚才的位置添加jar包.3.在Order and Export项里,将外部jar包选中.4.clean项目后,重新编译,这时的apk包里应该是包含外部jar啦.不过我还是有个疑惑,这个方法是我自己研究出来的,但是我所使用的jar包的demo示例项目中,却没有做我这样的设置,我特地看了一下,他只是…
这样弄完,jar包就都下载好了,就不缺失了. 从GitHub上checkout一个项目下来,导入idea后发现加载依赖奇慢无比,所以临时把网络调成FQ的代理,结果会发现idea会停止之前的下载,那怎么办呢?项目还没构建完成呢,折腾了很久,发现更改一下依赖的版本号,再右键pom文件,reimport可以成功加载改依赖,但是 没有版本号的库怎么弄呢?整了很久,发现可以这样操作: 点击右边工具栏maven--maven goal 然后在弹框中输入mvn -U idea:idea 等待命令执行完毕,就完…