编程开发 购物 网址 游戏 小说 歌词 快照 开发 股票 美女 新闻 笑话 | 汉字 软件 日历 阅读 下载 图书馆 编程 China
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
移动开发 架构设计 编程语言 互联网 开发经验 Web前端 开发总结
开发杂谈 系统运维 研发管理 数据库 云 计 算 Java开发
VC(MFC) Delphi VB C++(C语言) C++ Builder 其它开发语言 云计算 Java开发 .Net开发 IOS开发 Android开发 PHP语言 JavaScript
ASP语言 HTML(CSS) HTML5 Apache MSSQL数据库 Oracle数据库 PowerBuilder Informatica 其它数据库 硬件及嵌入式开发 Linux开发资料
  编程开发知识库 -> 研发管理 -> Maven项目打包为jar的几种方式 -> 正文阅读
 

[研发管理]Maven项目打包为jar的几种方式[第1页]

Maven项目打包为jar的几种方式
这里收集整理下以往打包MAVEN项目为JAR包的各种方式
直接打包,不打包依赖包
直接打包,不打包依赖包,仅打包出项目中的代码到JAR包中。在POM中添加如下plugin即可,随后执行maven install

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

将依赖JAR包输出到lib目录方式
将项目中的JAR包的依赖包输出到指定的目录下,修改outputDirectory配置,如下面的${project.build.directory}/lib。如想将打包好的JAR包可以通过命令直接运行,如java -jar xx.jar,还需要制定manifest配置的classpathPrefix与上面配置的相对应,如上面把依赖JAR包输出到了lib,则这里的classpathPrefix也应指定为lib/;同时,并指定出程序的入口类,在配置mainClass节点中配好入口类的全类名。
这种打包方式对于JAVA项目是通用的,不管是不是springBoot的项目还是传统的JAVA项目,都可行。

        <plugins>
            <!-- java编译插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                            <mainClass>com.yourpakagename.mainClassName</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy</id>
                        <phase>install</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>

将项目依赖包和项目打为一个包
这种方式打包会将项目中的依赖包和项目代码都打为一个JAR包,其配置如下:

            <plugin>
            <groupId>org.apache.maven.plugins</groupId>  
            <artifactId>maven-assembly-plugin</artifactId>  
            <version>2.5.5</version>  
            <configuration>  
                <archive>  
                    <manifest>  
                        <mainClass>com.xxg.Main</mainClass>  
                    </manifest>  
                </archive>  
                <descriptorRefs>  
                    <descriptorRef>jar-with-dependencies</descriptorRef>  
                </descriptorRefs>  
            </configuration>  
        </plugin> 

但此种方式对于传统的JAVA项目打包没问题,如是打有spring框架的JAR包就不可以了。可以采用maven-shade-plugin的插件来打包,来实现spring框架的打包
springBoot项目打包
springBoot项目打包最常用且最简单的方式是用springBoot的打包plugin

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

在POM中加入此插件,再点击maven [install]或[repackge]就会把当前项目里所有依赖包和当前项目的源码都打成一个JAR包,同时还会将没有依赖包的JAR包也打出来,以.original的就是了
阅读全文
版权声明:本文为博主原创文章,未经博主允许不得转载。
本文已收录于以下专栏:

发表评论
HTML/XML objective-c Delphi Ruby PHP C# C++ JavaScript Visual Basic Python Java CSS SQL 其它
相关文章推荐
Maven打包可执行Jar的几种方法
一、无依赖其他任何jar org.apache.maven.plugins maven-...
wo240 2017-04-01 01:01 206 可运行jar包的几种打包/部署方式
java项目开发中,最终生成的jar,大概可分为二类,一类是一些通用的工具类(不包含main入口方法),另一类是可直接运行的jar包(有main入口方法),下面主要讲的是后者,要让一个jar文件可直接...
MitKey 2016-07-27 11:21 2777 Jar包的几种打包方式
一.工程没有引用外部jar包时(J2SE) 选中工程---->右键,Export...--->Java--->选择JAR file--->next-->选择jar file的路径及名称-->ne...
wang85632968 2013-09-09 18:30 491 maven打包hadoop项目(含第三方jar)
maven打包hadoop项目(含第三方jar)   问题背景: 1 写map-reduce程序,用到第三方jar,怎么打包并提交项目到服务器执行。 2 mahout中itembased算法,将uid...
linger2012liu 2014-12-25 00:12 3257 Maven项目打包成可执行的jar
方法一:将项目及所依赖的所有jar包打包成一个jar。 1、pom.xml添加assembly插件   2、执行mvn assembly:assembly   3、生成如下文件  ...
a258831020 2015-08-28 15:28 1835 Java项目打包成可执行的Jar包(FatJar 或 Maven)
首先,我们想要达到的效果是,在Window下的cmd下能执行:java -jar xxxx.jar ,能执行到我设置的Main方法中。 类似: 方法一: 下面介绍大家使用Fat...
huangchengkang 2016-04-14 08:16 367 使用assembly将maven项目pom.xml中的jar包打包
方法一:将pom.xml引入的jar包打到zip文件夹中   1、pom.xml的配置 1 2 3 4 5 6 7 8...
wodeyuer125 2015-03-04 19:16 1285 一段实用的maven pom:将项目依赖打包到文件夹或打入jar中
使用了maven-assembly-plugin插件和maven-dependency-plugin,将依赖打入jar和文件夹
aitangyong 2016-09-13 16:15 3962 如何将maven项目打包成可执行的jar
方法一:将项目及所依赖的所有jar包打包成一个jar。 1、pom.xml添加assembly插件   2、执行mvn assembly:assembly   3、生成如下文件  ...
zhangdaiscott 2011-10-27 18:14 47765 maven 打包web项目成jar, 可放在服务器上运行
1.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLS...
wlz520520 2015-05-08 09:44 1970
puhaiyang +关注
原创 71 粉丝 24 喜欢 0 码云  
他的最新文章 更多文章
springBoot配置文件加载原理探究 对JVM分派概念的理解 对JAVA代码设计六大原则的理解
在线课程

【免费】搜狗机器翻译技术分享
讲师:

深度学习在推荐领域的应用和实践
讲师:吴岸城
热门文章 采用shiro实现登录认证与权限授权管理
12885
采用基于MQTT的ActiveMQ实现消息推送
7905
IOS使用项目中的本地数据库简单操作
7687
工作流框架Activiti常用功能初探
7331
用JAVA实现LL(1)文法语法分析程序
5952
0
  研发管理 最新文章
开始使用代码编辑器——Sublime Text 3
程序调试
别告诉我你会记笔记——工作中如何使用笔记
android wss 连接不上ejabberd服务器的处理
软件配置管理基线解释
软件配置管理中三个基线概念
伙伴系统之伙伴系统概述
C#之字符匹配
查看域名是否支持IPv6
你对Linux窗口管理程序Tmux了解吗
上一篇文章      下一篇文章      查看所有文章
加:2017-10-29 22:03:55  更:2017-10-29 22:06:01 
VC(MFC) Delphi VB C++(C语言) C++ Builder 其它开发语言 云计算 Java开发 .Net开发 IOS开发 Android开发 PHP语言 JavaScript
ASP语言 HTML(CSS) HTML5 Apache MSSQL数据库 Oracle数据库 PowerBuilder Informatica 其它数据库 硬件及嵌入式开发 Linux开发资料
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 新闻资讯 小游戏 Chinese Culture 股票 三丰软件 开发 中国文化 网文精选 阅读网 看图 日历 万年历 2018年11日历
2018-11-18 9:14:41
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  编程开发知识库