博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用maven将swing项目打成可执行jar包(含依赖)
阅读量:5924 次
发布时间:2019-06-19

本文共 2756 字,大约阅读时间需要 9 分钟。

本文介绍通过maven将项目打成可执行jar包的方法。

本文需要读者具备maven基础知识,了解maven的一般配置、插件配置,了解maven的phase、goal的概念,了解dependency和manifest的作用。

先决条件:

(本文所述方法适用于项目的特点)

1、项目必须是maven项目;

3、项目中必须有一个主入口类,在用户双击打包后的jar文件时可以被执行。

打包:

第一种情况:独立项目,且无第三方依赖包

这种情况下,我们需要maven的maven-jar-plugin插件来帮我们打包。请在项目pom.xml中的plugin配置处加入如下内容:(注意看<!-- -->注释部分)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
...
<
plugin
>
    
<
artifactId
>maven-jar-plugin</
artifactId
>
    
<
version
>2.3.2</
version
>
    
<
configuration
>
        
<
archive
>
            
<
manifest
>
                
<
addClasspath
>true</
addClasspath
>
                
<!-- 如果项目带有3rd-party lib,这些依赖将被放入lib文件夹 -->
                
<!-- 注意:这个文件夹要随着jar文件一起distribute,否则jar文件运行时将报错 -->
                
<
classpathPrefix
>lib/</
classpathPrefix
>
                
<
mainClass
>com.yourProjectPackage.YourEntranceClass</
mainClass
>
            
</
manifest
>
        
</
archive
>
    
</
configuration
>
</
plugin
>
...

然后用mvn clean install来编译安装你的项目。命令执行结束后会生成一个jar文件,一个lib文件夹(如果你的项目引用了3rd-party dependencies的话)。双击jar文件,就立刻看到效果了。有界面的项目应该能看到主界面(如果你程序没错的话),没有界面的,应该可以从你机器的java console里看到相关信息,或者项目自身有log输出或具有神奇的效果的,可以直接去检视输出结果。

第二种情况:项目+第三方依赖包

这种情况就无法使用maven-jar-plugin插件来打包了。我们要用另一个插件maven-assembly-plugin。这个插件可以帮助我们灵活的打包我们的项目(不仅打包jar项目,还可以用于ear、war等项目的打包,本文只介绍如何打可执行jar包)。这里,我们使用此插件将我们的source code编译结果以及项目的dependencies打到一起,形成一个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
>
    
<
artifactId
>maven-assembly-plugin</
artifactId
>
    
<
version
>2.6</
version
>
    
<
configuration
>
        
<!-- 这个archive以及archive里面的设置很重要,没有这个配置,就无法生成可执行jar文件 -->
        
<
archive
>
            
<
manifest
>
                
<
mainClass
>com.your.package.YourEntranceClass</
mainClass
>
            
</
manifest
>
        
</
archive
>
        
<!-- 这个jar-with-dependencies是这个插件中预置的,不用管它,尽管用就好了 -->
        
<!-- 当然,你也可以用自己的descriptor。如何用?自己去查这个插件的文档 -->
        
<
descriptorRefs
>
            
<
descriptorRef
>jar-with-dependencies</
descriptorRef
>
        
</
descriptorRefs
>
    
</
configuration
>
    
<
executions
>
        
<
execution
>
            
<
id
>make-assembly</
id
>
            
<!-- 这里的phase和goals都是maven的基础概念,不懂的可以去看maven的文档 -->
            
<!-- 总之,当你install你的project的时候,是会涵盖package phase和single goal的 -->
            
<
phase
>package</
phase
>
            
<
goals
>
                
<
goal
>single</
goal
>
            
</
goals
>
        
</
execution
>
    
</
executions
>
</
plugin
>

添加了此plugin之后,就可以clean install你的maven项目了。然后在maven命令执行结束后的console里会找到类似以下内容:

--- maven-install-plugin:2.4:install (default-install) @ MvnCfgSwitcher ---

Installing F:\uuuu\vvvv\Wwwww\target\Wwwww-1.0-SNAPSHOT.jar to Y:\mvn_repo\com\yourname\Wwwww\1.0-SNAPSHOT\Wwwww-1.0-SNAPSHOT.jar
Installing F:\uuuu\vvvv\Wwwww\pom.xml to Y:\mvn_repo\com\yourname\Wwwww\1.0-SNAPSHOT\Wwwww-1.0-SNAPSHOT.pom
Installing F:\uuuu\vvvv\Wwwww\target\Wwwww-1.0-SNAPSHOT-jar-with-dependencies.jar to Y:\mvn_repo\com\yourname\Wwwww\1.0-SNAPSHOT\Wwwww-1.0-SNAPSHOT-jar-with-dependencies.jar

其中蓝色标识部分就是生成的all-in-one的可执行jar文件。

快双击打包结果试试看吧,亲!

本文转自 rickqin 51CTO博客,原文链接:http://blog.51cto.com/rickqin/1714633

转载地址:http://assvx.baihongyu.com/

你可能感兴趣的文章
MS SQLSERVER 一次性删除所有表以及视图等等
查看>>
java urldecode.decode“+”变空格
查看>>
背包恰好装满和不必装满的初始化区别
查看>>
并行口设计花样流水灯实验
查看>>
JS树形菜单
查看>>
使用Spring Boot开发 “Hello World” Web应用
查看>>
LED数码管显示实验
查看>>
ASP.NET Cache缓存的使用
查看>>
[Codeforces708E]Student's Camp
查看>>
在Linux(Debian)环境下搭建并运行GPU
查看>>
一阶电路的零状态响应
查看>>
.net core 基于IIS发布
查看>>
[HDU 2553]--N皇后问题(回溯)/N皇后问题的分析
查看>>
.net task
查看>>
Find Peak Element II
查看>>
机器学习-贝叶斯新闻分类实例
查看>>
小试 boost spirit
查看>>
HttpServletRequest 工具类
查看>>
console.log()注意事项。
查看>>
转载:30多条mysql数据库优化方法,千万级数据库记录查询轻松解决
查看>>