onejar-maven-plugin把java类与lib打包为一个可运行jar
1、问题背景 我们有时要开发一个Java Application,就是main来直接运行的那种,虽然有好多工具可以帮助我们打为jar。 但会有以下两个问题: 第一种是需要lib目录依赖一起来运行。(需要依赖文件,一个jar不可以运行) 第二种就是是把其它依赖的jar解开和你的类放在一个jar中。(框架的限制,包依赖之间的冲突,解压替换内容的过程产生类与资源的混乱) 第一种的问题显而易见需要copy太多东西(lib/*.jar)太麻烦。 第二种虽然可以做到一个jar运行的效果,但因为是解开再合再一起,尤其是jar中类有冲突时将和你在ide中不解开执行的效果不一样。(如eclipse可以运行,打包出来就不可以运行) 2、用One-JAR来解决 这个工具很好的解决了这一点,它相当于做一了一个启动壳。可以不改变你的jar与依赖的jar包,也不用解开。 简单理解就是jar中有jar。运行可以达到ide或配类路径运行一样的效果。 One-JAR有maven下的插件onejar-maven-plugin,所以对于maven的jar工程来说打包很方便。 pom.xml只需要加入以下plugin内容 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId>