一个Eclipse的工程,在pom中配置了若干依赖,需要将pom中所有的依赖全部打包进一个jar包中,可以选择的方案有maven-assembly-plugin和fatjar.以前采用fatjar进行打包,但是fatjar有不少问题, 1. 最近一次更新是在09年,无法支持新版本的eclipse. 2.支持最高的jdk版本是1.7 3. 打包速度慢(不是一般的慢) 4. 打成的jar包体积略大. 下面是一个Eclipse的工程,其中含有不少的maven依赖包: 采用export成runnable…
今天在做storm on maven的时候发现要依赖到storm-hdfs的jar.自己又非常不想把乱七八糟的东西丢上自己的集群lib.于是就想maven 打包的时候把插件一块打包进jar.maven默认自己不会打包进jar,我只要把自己需要的打包进去就好了. 走了不少弯路,现在记录一把,防止以后自己用到: 我的pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www…
今天有人问我打包后找不到主类,运行的类写在test中.按照常规,test目录下的文件不会打包到jar包中.(但是我测试一个springboot工程就可以,这里之后再研究) 具体解决如下 第一步:在pom文件中引入Maven Assembly Plugin插件 (注意:如果含有其他打包插件,最好先排除掉干扰) 1 <plugin> 2 <artifactId>maven-assembly-plugin</artifactId> 3 <version>2.3&l…
使用场景 在使用maven来管理项目时,项目除了web项目,还有可能为控制台程序,一般用于开发一些后台服务的程序.最近在工作中也遇到了这种场景,使用quartz开发一个任务调度程序.程序中依赖很多jar包,项目的启动时只需要初始化spring容器即可. 使用方法 使用一个简单的基于spring框架的demo来做程序示例,来介绍maven assembly插件的使用方法. 项目中的代码目录如下: 在以上代码目录中,assembly目录下为打包的描述文件,下面会详细介绍该文件,bin目录下为启动脚本…
1.把依赖打进sigma-api的jar包 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.ap…
Maven可以使用mvn package指令对项目进行打包,如果使用java -jar xxx.jar执行运行jar文件,会出现"no main manifest attribute, in xxx.jar"(没有设置Main-Class).ClassNotFoundException(找不到依赖包)等错误. 要想jar包能直接通过java -jar xxx.jar运行,需要满足: 1.在jar包中的META-INF/MANIFEST.MF中指定Main-Class,这样才能确定程序的…
1.pom工程:**用在父级工程或聚合工程中.用来做jar包的版本控制.必须指明这个聚合工程的打包方式为pom 2.war工程:将会打包成war,发布在服务器上的工程.如网站或服务.在SpringBoot 项目中,只要我们在依赖中添加了web的启动器,我们就不需要添加打包方式了,maven会自动帮助我们 识别这个项目为war工程.不是springBoot项目的话,则需要指明这个项目为一个web工程. **3.jar工程:**将会打包成jar用作jar包使用.在项目中,不指明的话,默认的就是打包成…
通过maven-assembly-plugin插件可以实现将依赖jar包打包到自己的jar包中的需求,只需要在pom.xml中配置该插件即可,配置如下: <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7&l…
我们项目中使用到第三方的库文件,这些jar库文件并没有放到Maven中央库上,导致我们需要在项目中自己配置使用.我们的两三个开发人员对Java都是很熟,因此在使用中遇到了一些问题,表现在:在本地中引入第三方jar包后,在Idea中进行相应设置后,可以调试运行了,但是用Docker打包上传到服务器后,运行时会提示找不到某些类的定义. 经查看这些找不到的类就是来自第三方库,那么问题有可能是第三方jar包的路径问题,或者是根本就没有打包进jar文件里面.我们可以去Docker容器内部查看jar文件,执…
目录 1 使用maven-shade-plugin 2 推荐: 使用maven-assembly-plugin 3 扩展: Maven安装本地jar包到本地仓库 4 扩展: 手动生成jar包 5 扩展: Linux下运行jar包的几种方式 5.1 阻塞式方式 5.2 后台运行方式 5.3 后台持续运行方式 5.4 其他命令扩展 1 使用maven-shade-plugin (1) 在项目的pom.xml文件中加入如下插件: <build> <plugins> <!-- Mav…