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 ...
随机推荐
- Spring Data Rest 支持Put请求
最近在用 Spring Data Rest 写WebApi 遇到Put请求后报415 Mieda Type 的错误,GG了下 找到个解决办法,下面是针对Put请求的过滤. 1 public class ...
- 原生Js封装的弹出框-弹出窗口-页面居中-多状态可选
原生Js封装的弹出框-弹出窗口-页面居中-多状态可选 实现了一下功能: 1.title可自定义 可拖拽 2.width height可以自定义 3.背景遮罩和透明度可以自定义 4.可以自己编辑弹出 ...
- WP8开发札记(一)WP8应用生命周期管理
在介绍生命周期前,我们先了解两个相关的概念. 1.墓碑机制:WP8与Android采用的真后台机制不同,WP8采用的是墓碑机制.一旦从当前应用程序离开(非退出),该应用会被墓碑化,这样可以更好的管理( ...
- UML九种图-包图、类图
UML九种图-包图.类图 一.包 (一)相关概念: 1.包: 一个包=一层=一个命名空间=一个文件夹 2.包的命名: 简单名:王老二 路径名:中国.河北省.廊坊市.廊坊师范学院.信息技术提高班.九期班 ...
- Java笔记:抽象类、接口
这篇笔记主要是抽象类和接口,还有简单介绍下三种设计模式:模板模式.工厂模式.命令模式 1.抽象方法和抽象类(1)抽象方法和抽象类都必须使用abstract修饰符来定义,包含抽象方法的类只能被定义成抽象 ...
- 一步一步深入spring(3)--spring的依赖注入方式
对于spring配置一个bean时,如果需要给该bean提供一些初始化参数,则需要通过依赖注入方式,所谓的依赖注入就是通过spring将bean所需要的一些参数传递到bean实例对象的过程,sprin ...
- 读取的XML节点中带有冒号怎么办?
读取的XML节点中带有冒号怎么办? 昨天,编程读取XML的时候,遇上了类似下面的一段XML <a:root xmlns:a="http://ww.abc.com/"> ...
- SharePoint Solutions Deployment-PowerShell
之前群里有人问到了这个,项目一期开发结束后正好整理了一下,发上来分享一下,也是从谷歌搜索里面学来的,大家要用好搜索哈 $ver = $host | select version if ($ver.Ve ...
- Facebook开源的基于SQL的操作系统检测和监控框架:osquery
osquery简介 osquery是一款由facebook开源的,面向OSX和Linux的操作系统检测框架. osquery顾名思义,就是query os,允许通过使用SQL的方式来获取操作系统的数据 ...
- 【转】PYTHON open/文件操作
[注]虽是转载,但会在原文上有些修改! open/文件操作f=open('/tmp/hello','w')#open(路径+文件名,读写模式)#读写模式:r只读,r+读写,w新建(会覆盖原有文件),a ...