阿丙的博客园

把每一件简单的事情做好,就是不简单;把每一件平凡的事情做好,就是不平凡!相信自己,创造奇迹~~

</div><!--end: blogTitle 博客的标题和副标题 -->
<div id="navigator">
  • 博客园
  • 首页
  • 新随笔
  • 联系
  • 订阅
  • 管理
       <div id="blog_stats">

随笔 - 457 
文章 - 0 
评论 - 68

 </div><!--end: blogStats -->
</div><!--end: navigator 博客导航栏 -->

IDEA中MAVEN项目打JAR包的简单方法

Idea中为一般的非Web项目打Jar包是有自己的方法的,网上一搜就能查到很多。
但是如果是为Maven项目打Jar包,其实是很简单的,因为maven本身就有打Jar包的命令。

最简单的方法

首先是在maven项目的pom.xml中添加打包的插件,这里有很多种方式的。最最简单的就是只使用maven-compiler-plugin、maven-jar-plugin插件,并且指定程序入口<mainClass>。相关代码如下:
pom.xml文件为:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion>
<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">groupId</span><span style="color: #0000ff;">&gt;</span>cn.mymaven<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">groupId</span><span style="color: #0000ff;">&gt;</span>
<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">artifactId</span><span style="color: #0000ff;">&gt;</span>test<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">artifactId</span><span style="color: #0000ff;">&gt;</span>
<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">version</span><span style="color: #0000ff;">&gt;</span>1.0-SNAPSHOT<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">version</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">build</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">plugins</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">plugin</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">groupId</span><span style="color: #0000ff;">&gt;</span>org.apache.maven.plugins<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">groupId</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">artifactId</span><span style="color: #0000ff;">&gt;</span>maven-compiler-plugin<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">artifactId</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">configuration</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">source</span><span style="color: #0000ff;">&gt;</span>1.8<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">source</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">target</span><span style="color: #0000ff;">&gt;</span>1.8<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">target</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">configuration</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">plugin</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">plugin</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">groupId</span><span style="color: #0000ff;">&gt;</span>org.apache.maven.plugins<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">groupId</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">artifactId</span><span style="color: #0000ff;">&gt;</span>maven-jar-plugin<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">artifactId</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">configuration</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">archive</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">manifest</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">addClasspath</span><span style="color: #0000ff;">&gt;</span>true<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">addClasspath</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">useUniqueVersions</span><span style="color: #0000ff;">&gt;</span>false<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">useUniqueVersions</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">classpathPrefix</span><span style="color: #0000ff;">&gt;</span>lib/<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">classpathPrefix</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">mainClass</span><span style="color: #0000ff;">&gt;</span>cn.mymaven.test.TestMain<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">mainClass</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">manifest</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">archive</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">configuration</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">plugin</span><span style="color: #0000ff;">&gt;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">plugins</span><span style="color: #0000ff;">&gt;</span>
<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">build</span><span style="color: #0000ff;">&gt;</span>

</project>

  入口类TestMain.java为:

package cn.mymaven.test;

public class TestMain {
public static void main(String[] args){
System.out.println(“Hello World”);
}
}

然后开始打包,在Idea中把Maven项目的命令都做成了可视化的操作界面,只需要如下操作就好:
  在Maven Project目录下,点击package  
此时在target目录下,就会生成这个项目的Jar包
使用java -jar 命令运行这个Jar包,会输出“Hello World”

需要注意的地方

需要说明的是,如果一个maven项目中有多个子目录,每一个子目录中的pom.xml对应一个项目,它的作用范围只有这一个子目录下的。比如扫描配置文件,如果要让一个子目录下的pom.xml扫描另一个子目录下的配置文件,那是做不到的。在打jar包的时候,只运行当前的pom.xml文件。
当然也有其他的打包方法,比如使用spring-boot-maven-plugin插件在打Jar包时,会引入依赖包
它的pom.xml文件配置为:
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><archive><manifest><addClasspath>true</addClasspath><useUniqueVersions>false</useUniqueVersions><classpathPrefix>lib/</classpathPrefix><mainClass>cn.mymaven.test.TestMain</mainClass></manifest><manifestEntries><version>${project.version}</version></manifestEntries></archive></configuration></plugin></plugins>
</build>

其他链接

如何构建多个子目录,参考:http://www.cnblogs.com/acm-bingzi/p/6625202.html
如果打成Jar包后报Unable to locate Spring NamespaceHandler for XML schema namespace错,参考:http://www.cnblogs.com/acm-bingzi/p/6625123.html
spring-boot-maven-plugin插件的作用,参考:http://www.cnblogs.com/acm-bingzi/p/mavenSpringBootPlugin.html
把每一件简单的事情做好,就是不简单;把每一件平凡的事情做好,就是不平凡!相信自己,创造奇迹~~
分类: 05、IDE,02、构建工具
好文要顶 关注我 收藏该文

贾树丙
关注 - 5
粉丝 - 61

+加关注

3
0

« 上一篇:打成Jar包后运行报错 Unable to locate Spring NamespaceHandler for XML schema namespace
» 下一篇:如何在IDEA中调试 Jar文件
 </div><div class="postDesc">posted @ <span id="post-date">2017-03-27 09:50</span> <a href="https://www.cnblogs.com/acm-bingzi/">贾树丙</a> 阅读(<span id="post_view_count">42173</span>) 评论(<span id="post_comment_count">0</span>)  <a href="https://i.cnblogs.com/EditPosts.aspx?postid=6625303" rel="nofollow">编辑</a> <a href="#" onclick="AddToWz(6625303);return false;">收藏</a></div>
</div>
<script type="text/javascript">var allowComments=true,cb_blogId=131900,cb_entryId=6625303,cb_blogApp=currentBlogApp,cb_blogUserGuid='15f65f17-0862-e111-aa3f-842b2b196315',cb_entryCreatedDate='2017/3/27 9:50:00';loadViewCount(cb_entryId);var cb_postType=1;</script>
</div><!--end: forFlow -->
</div><!--end: mainContent 主体内容容器--><div id="sideBar"><div id="sideBarMain">

公告

昵称:贾树丙
园龄:6年8个月
粉丝:61
关注:5

+加关注

      <div id="blog-calendar" style=""><table id="blogCalendar" class="Cal" cellspacing="0" cellpadding="0" title="Calendar">
<tbody><tr><td colspan="7"><table class="CalTitle" cellspacing="0"><tbody><tr><td class="CalNextPrev"><a href="javascript:void(0);" onclick="loadBlogCalendar('2018/10/01');return false;">&lt;</a></td><td align="center">2018年11月</td><td class="CalNextPrev" align="right"><a href="javascript:void(0);" onclick="loadBlogCalendar('2018/12/01');return false;">&gt;</a></td></tr>
</tbody></table></td></tr><tr><th class="CalDayHeader" align="center" abbr="日" scope="col">日</th><th class="CalDayHeader" align="center" abbr="一" scope="col">一</th><th class="CalDayHeader" align="center" abbr="二" scope="col">二</th><th class="CalDayHeader" align="center" abbr="三" scope="col">三</th><th class="CalDayHeader" align="center" abbr="四" scope="col">四</th><th class="CalDayHeader" align="center" abbr="五" scope="col">五</th><th class="CalDayHeader" align="center" abbr="六" scope="col">六</th></tr><tr><td class="CalOtherMonthDay" align="center">28</td><td class="CalOtherMonthDay" align="center">29</td><td class="CalOtherMonthDay" align="center">30</td><td class="CalOtherMonthDay" align="center">31</td><td align="center">1</td><td align="center">2</td><td class="CalWeekendDay" align="center">3</td></tr><tr><td class="CalWeekendDay" align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td align="center">9</td><td class="CalWeekendDay" align="center">10</td></tr><tr><td class="CalWeekendDay" align="center">11</td><td align="center">12</td><td class="CalTodayDay" align="center"><a href="https://www.cnblogs.com/acm-bingzi/archive/2018/11/13.html"><u>13</u></a></td><td align="center">14</td><td align="center">15</td><td align="center">16</td><td class="CalWeekendDay" align="center">17</td></tr><tr><td class="CalWeekendDay" align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td align="center">23</td><td class="CalWeekendDay" align="center">24</td></tr><tr><td class="CalWeekendDay" align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td align="center">30</td><td class="CalOtherMonthDay" align="center">1</td></tr><tr><td class="CalOtherMonthDay" align="center">2</td><td class="CalOtherMonthDay" align="center">3</td><td class="CalOtherMonthDay" align="center">4</td><td class="CalOtherMonthDay" align="center">5</td><td class="CalOtherMonthDay" align="center">6</td><td class="CalOtherMonthDay" align="center">7</td><td class="CalOtherMonthDay" align="center">8</td></tr>

     <div id="leftcontentcontainer"><div id="blog-sidecolumn"><div id="sidebar_search" class="sidebar-block">

搜索

常用链接

  • 我的随笔
  • 我的评论
  • 我的参与
  • 最新评论
  • 我的标签

最新随笔

  • 1. 批量更新代码整理(代码库)从数组中批量取数据的方法
  • 2. for循环里使用查询如何优化(代码库)
  • 3. Swagger如何测试Date类型参数
  • 4. Java自定义异常类以及异常拦截器
  • 5. mysql如何直接查出从1开始递增的数
  • 6. IDEA的 mybatis插件报错 - IDE Fatal Errors
  • 7. 如何打印consul的错误信息
  • 8. mybatis返回结果封装为map的探索
  • 9. mysql数据去重并排序使用distinct 和 order by 的问题
  • 10. swagger如何测试List类型参数

随笔分类(575)

  • 01、JAVA(81)
  • 02、构建工具(14)
  • 03、SQL与数据库(33)
  • 04、Spring(15)
  • 05、IDE(39)
  • 06、系统与服务器(13)
  • 07、ORM(7)
  • 08、日志与测试(3)
  • 09、POI(8)
  • 10、Git(10)
  • 11、Cuba Platform(16)
  • 12、Jdk特性(9)
  • 13、Web(11)
  • 14、Angular与Ionic(20)
  • 15、Spring Cloud(5)
  • OJ_HDU(51)
  • OJ_HUST(5)
  • OJ_LA(5)
  • OJ_Others(6)
  • OJ_POJ(16)
  • OJ_UVA(25)
  • OJ_ZOJ(47)
  • 其他(6)
  • 算法_动态规划(78)
  • 算法_数据结构(15)
  • 算法_搜索(17)
  • 算法_随机算法(1)
  • 算法_状态压缩(19)
  • 积分与排名

    • 积分 - 257849
    • 排名 - 976

    阅读排行榜

    • 1. MySQL的Limit详解(61882)
    • 2. 注解Annotation实现原理与自定义注解例子(50554)
    • 3. IDEA中MAVEN项目打JAR包的简单方法(42173)
    • 4. IDEA导出jar包后运行报错 找不到或无法加载主类(26238)
    • 5. 使用System.getProperty方法,如何配置JVM系统属性(19519)
    • 6. Java移动文件到另外一个目录(18253)
    • 7. @Autowired的使用:推荐对构造函数进行注释(13989)
    • 8. HashMap,LinkedHashMap,TreeMap的区别(转)(13856)
    • 9. 新版POI如何获取日期类型的cell的值(13732)
    • 10. MySQL的IFNULL解决判空问题(13158)

    推荐排行榜

    • 1. 注解Annotation实现原理与自定义注解例子(14)
    • 2. MySQL的Limit详解(10)
    • 3. @Autowired的使用:推荐对构造函数进行注释(7)
    • 4. IDEA中MAVEN项目打JAR包的简单方法(3)
    • 5. 我的SSH框架实例(附源码)(3)
    • 6. Spring定时服务QuartZ(2)
    • 7. Ionic3的HTTP请求方法(2)
    • 8. Dorado浏览器调试(1)
    • 9. for循环里使用查询如何优化(代码库)(1)
    • 10. 我的代码库-Java8实现FTP与SFTP文件上传下载(1)

     </div><!--end: sideBarMain -->
    </div><!--end: sideBar 侧边栏容器 -->
    <div class="clear"></div>
    </div><!--end: main -->
    <div class="clear"></div>
    <div id="footer">
    

    Copyright ©2018 贾树丙

maven项目中通过idea工具打jar包相关推荐

  1. maven项目配置阿里云镜像下载jar包

    Apache Maven 是新一代的项目构建工具.其特有的pom文件管理jar包的配置,让你从繁琐的jar包中解脱出来,只要联网,根据配置的文件,maven会自动从互联网下载jar包,但是开发的伙伴经 ...

  2. 如何查看Maven项目中的jar包依赖树情况?

    对于开发人员,我想大家对于Maven应该不会陌生吧,如何在一个Maven项目中对这个项目中所引用的第三方jar包有个直观的了解呢? 其实实现很简单,只需要借助于Maven的一条命令,如下所示: mvn ...

  3. maven项目中,使用pom文件引入自定义jar包

    遇到需求要把自己的jar包引入到项目中,首先我的jar包是 sac-sys-service-1.0.jar 一.第一种,放到maven仓库 1. 找到整个项目的maven仓库,我的是默认路径: C盘 ...

  4. 在Maven项目中添加Maven仓库和私服不存在的jar包

    有些jar包(因为不开源/公司内部私有等原因)在Maven仓库.私服中不存在.在Maven项目中添加Maven仓库和私服不存在的jar包呢? 场景: maven项目有时会遇到用非maven仓库或公司内 ...

  5. 解决maven打包时手动添加的依赖jar包打不进去的情况

    这个问题忙了我一天多的时间,因为太棘手了, 所以记录下来,防止忘记: 问题是这样的,因为项目中用到了自定义的jar包,也就是远程仓库里没有的jar,所以想要引用就必须自己手动添加进去,在idea中运行 ...

  6. SpringBoot项目开发(十):引用本地jar包与打包本地jar

    标题可能有点绕口,在实际开发中,有时所引用的jar架包无法在 maven 中央仓库里找到,那么j就要引用本地jar包,然而在项目开发完成后,需要打包部署时,引用的本地jar包没有打包进去部署包,就会导 ...

  7. 【idea基础知识】在maven项目中额外增加jar包

    不受MAVEN管理的方式 有些jar包比如odbc.jar无法通过maven直接下载到,如果有现成的jar包可以直接导入的话就方便多了. 如果不需要增加到maven配置中,则使用如下方式导入. 首先通 ...

  8. Maven项目中使用本地JAR包

    在Maven项目中使用本地JAR包有两种方法: 1. 使用system scope <dependencies><dependency><groupId>org.r ...

  9. 在maven项目中解决第三方jar包依赖的问题

    在maven项目中解决第三方jar包依赖的问题 参考文章: (1)在maven项目中解决第三方jar包依赖的问题 (2)https://www.cnblogs.com/nuccch/p/6122938 ...

  10. executequery方法_在IDEA的maven项目中连接使用MySQL8.0方法教程

    首先看一下我的基本的开发环境: 操作系统:MacOS 10.13.5编辑器:IDEA 2018.3其他:MySQL8.0.15.Maven 3.3.9.JDK 1.8 好,下面就正式开始: 第一步:在 ...

最新文章

  1. 【鸿蒙 HarmonyOS】界面跳转 ( Page Ability 的 action 标识 | Page Ability 之间的界面跳转及传递数据 | 鸿蒙工程下创建 Module | 代码示例 )
  2. apache 目录访问加密 简单
  3. java for与foreach_java中for和foreach的区别是什么?
  4. CSS清楚浮动大全,工8种方法
  5. undertale人物_「undertale」传说之下精美人物图包 (SansGaster篇)
  6. 常用排序算法(二)快速排序
  7. selenium之 chromedriver与chrome版本映射表(更新至v2.43)
  8. 【CCCC】L2-019 悄悄关注 (25分),,模拟水题,STL大法好
  9. 201521123070 《JAVA程序设计》第8周学习总结
  10. 左右手桌面股票盯盘软件(DesktopStockTracking)
  11. c语言链表小甲鱼,有大佬做过小甲鱼双向链表实践吗小甲鱼
  12. 医院标准化信息中心机房建设心得
  13. 学计算机二级的免费软件,计算机二级MS模拟软件
  14. SeaweedFS介绍安装集群部署总结
  15. STM32平台下的TM1812驱动
  16. 【每日一题】最大正方形面积——进阶,矩形面积
  17. Nvidia TX2爬坑过程——1、入手刷机教程
  18. clang format 官方文档自定义参数介绍(中英文)
  19. 【睡眠排序】java
  20. 2021河北高考正定中学成绩查询,河北正定中学

热门文章

  1. android ui设计灵感,26款高品质 APP UI原型设计灵感
  2. 近几年热门的计算机专业,中国近十年最受高考状元青睐专业排行榜
  3. 各个国家的货币符号和英文缩写全解析
  4. 平面波角谱积分 matlab,第2章2_5平面波角谱.ppt
  5. 二项分布的特征函数及期望与方差 - 随机过程
  6. mysql分组聚合compute_SQLServer之Compute/ComputeBy实现数据汇总
  7. SqlMapTamper使用指南
  8. 成为一名数据分析师,需要学习统计学吗?
  9. 无线路由器实现网络接入
  10. 简书计算机组成原理知识点梳理,指令:计算机的语言(MIPS) --计算机组成原理(2)...