onejar-maven-plugin把java类与lib打包为一个可运行jar
来源:互联网 发布:河北邯郸广电网络集团 编辑:程序博客网 时间:2024/05/16 04:52
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内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<
plugin
>
<
groupId
>org.apache.maven.plugins</
groupId
>
<
artifactId
>maven-jar-plugin</
artifactId
>
<
configuration
>
<
archive
>
<
manifest
>
<
mainClass
>org.noahx.onejartest.Launcher</
mainClass
>
</
manifest
>
</
archive
>
</
configuration
>
</
plugin
>
<
plugin
>
<
groupId
>com.jolira</
groupId
>
<
artifactId
>onejar-maven-plugin</
artifactId
>
<
version
>1.4.4</
version
>
<
executions
>
<
execution
>
<
configuration
>
<
attachToBuild
>true</
attachToBuild
>
<
classifier
>onejar</
classifier
>
</
configuration
>
<
goals
>
<
goal
>one-jar</
goal
>
</
goals
>
</
execution
>
</
executions
>
</
plugin
>
maven-jar-plugin大家比较熟悉,主要的加启动类。
onejar-maven-plugin是我们的主角。有了它,你再运行mvn package时,就会多生成一个xxxxxx.one-jar.jar文件。
这个文件直接可以java -jar xxxxxx.one-jar.jar来单独运行。
而且就这一个jar。不需要其它依赖。copy起来很方便。
0 0
- onejar-maven-plugin把java类与lib打包为一个可运行jar
- onejar-maven-plugin把java类与lib打包为一个可运行jar
- onejar-maven-plugin把java类与lib打包为一个可运行jar
- onejar-maven-plugin把java类与lib打包为一个可运行jar
- maven-assembly-plugin把java工程打包成为一个可执行的jar包
- maven-assembly-plugin把java工程打包成为一个可执行的jar包
- maven-assembly-plugin把java工程打包成为一个可执行的jar包
- maven把项目打包成可运行的jar包
- maven打包可运行jar
- Maven打包可运行jar
- maven build打包java项目为可运行的jar包
- maven项目使用maven-assembly-plugin打包成可运行的jar
- Maven Spring 项目打包成可运行的jar包 (用maven-shade-plugin)
- MAVEN打包可直接运行的jar
- maven打包可运行的JAR
- maven打包可运行的JAR
- Maven 打包可运行Jar
- MAVEN打包可运行jar包
- c#实现http请求并解析返回之json
- 谁在掌管着OpenStack项目
- C++ 成员变量的初始化与构造函数
- AVL树
- C/C++ 中fopen_s与fopen
- onejar-maven-plugin把java类与lib打包为一个可运行jar
- 一些网站地址
- UVA - 11044 Searching for Nessy
- 固定导航栏css样式待代码
- Java异常处理机制
- OpenNMS编译,打包并在Windows下启动
- POJ1611 The Suspects 并查集
- oracle11g 常用函数(Functions)详解
- wireshark过滤规则总结