Maven编译可执行jar
打包:
第一种情况:独立项目,且无第三方依赖包
这种情况下,我们需要maven的maven-jar-plugin插件来帮我们打包。请在项目pom.xml中的plugin配置处加入如下内
<
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的配置部分:
<
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
>
Maven编译可执行jar的更多相关文章
- Maven打包可执行Jar包方式
第一步:pom.xm中的build标签下加入maven插件配置,打包生成可执行jar包方式Maven中的打包方式更换为 <packaging>jar</packaging> b ...
- Apache Maven 打包可执行jar
在本文的 参考资料 部分,您将发现大量介绍 Maven 的入门教程.本文的 5 个技巧目的是帮助您解决即将出现的一些问题:使用 Maven 管理您的应用程序的生命周期时,将会出现的编程场景. 1. 可 ...
- maven打包可执行jar文件运行报错
起因 项目中同时依赖了Spring和MyBatis,并使用mybatis-spring集成MyBatis和Spring. 使用maven打包为可执行jar文件运行,打包插件为:maven-shade- ...
- Spring Boot Maven 打包可执行Jar文件!
Maven pom.xml 必须包含 <packaging>jar</packaging> <build> <plugins> <plugin&g ...
- spring boot项目maven打包可执行JAR
在pom.xml中添加如下配置: <!-- 打包可执行jar包 --> <plugin> <groupId>org.springframework.boot< ...
- maven 打包可执行jar的两种方法
1.修改pom.xml增加如下内容 <build> <pluginManagement> <plugins> <plugin> <groupId& ...
- maven创建可执行jar包项目的配置
<build> <plugins> <plugin> <artifactId>maven-shade-plugin</artifactId> ...
- 使用maven生成可执行jar包(包含依赖)
零零散散找了一些文章,有些感觉好乱,自己整理一下 以下是pom.xml里的配置,本来有很多依赖包,为了不让配置看着很长,我删了一些dependencies中我自己项目中引入的jar包 <proj ...
- maven 打包可执行jar的方法
转自:http://blog.csdn.net/johnnywww/article/details/7964326 1.修改pom.xml增加如下内容 <plugin> <group ...
随机推荐
- Python Tutorial - Parse JSON Objects with Python
This tutorial is copied from youtube.com Here is the link: http://www.youtube.com/watch?v=RXqo3lC-JP ...
- swift设置textfield边框颜色
//swift3.0,如果是2.0的话也可以照着这个样子去写,语法有所变动.根据联想出来的就可以了. let tx = UITextField(frame: CGRect(x: 100, y: 100 ...
- 百度地图API的自动定位和搜索功能(移动端)
近期有个项目涉及到百度地图API,要求做到自动定位和搜索功能.煞费苦心的研究半天,终于能将两个功能合二为一,现将代码贴出来分享给大家,希望你们的砖搬得又快又好.注释不多,具体请参照:http://lb ...
- [jQuery]on和bind事件绑定的区别
on和bind事件绑定的区别 一个demo展示 <!DOCTYPE html> <html lang="zh"> <head> <titl ...
- 一个问题:关于finally中return吞掉catch块中抛出的异常
今天遇到一个感觉很神奇的问题,记录一下问题以及自己分析问题的思路. 预警:不知道怎么看java字节码的朋友可能需要先看一下如何阅读java字节码才能看懂后面的解释. 我有一段程序: public cl ...
- H5 拖放事件详解
拖放事件 H5的拖放事件提供了多个接口: 1.drag:当元素或者选中的文本被拖动时触发(每几百毫秒触发一次),应用在被拖拽元素上 2.dragend:当拖动操作结束时触发(通过释放鼠标按钮或者点击转 ...
- windows环境自动获取SVN仓库当前版本
如果我们的软件能够自动引入SVN修订号(仓库版本号),那么我们开发软件的时候就能快速定位bug出自哪个SVN版本.那么如何让软件直接自动生成并引用SVN版本号呢? 我们可以使用SVN info命令,在 ...
- List list = new ArrayList()
方便以后扩展List是一个接口,而ArrayList 是一个类. ArrayList 继承并实现了List.List list = new ArrayList();这句创建了一个ArrayList的对 ...
- .net: 不能忽视的break——寻找VS2010和VS2012编译器的一个小区别
文中的问题来自于实际开发,但是实际开发中的代码逻辑比较复杂,因此下面的代码去掉了所有逻辑,只保留能体现问题的代码,类和都只为了说明问题,并不具有实际意义.下面首先看看下面的代码和现象. 1. 问题再现 ...
- ECStore图片存储采用阿里云OSS(图片存储)服务
主要功能:ECStore图片存储采用阿里云OSS(图片存储)服务 适用版本:ECStore 授权方式:授权域名使用,付费插件 联系方式: QQ 275553385 mail: jimingson ...