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><groupId>cn.mymaven</groupId><artifactId>test</artifactId><version>1.0-SNAPSHOT</version><build><plugins><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></archive></configuration></plugin></plugins></build></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

转载于:https://www.cnblogs.com/acm-bingzi/p/6625303.html

IDEA中MAVEN项目打JAR包的简单方法相关推荐

  1. Java代码安装maven jar_Java中Maven项目导出jar包配置的示例代码

    具体代码如下所示: src/main/java src/main/resources ${project.build.directory} **/*.java src/test/java src/te ...

  2. IDEA中maven项目导jar包太慢

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/PROGRAM_anywhere/article/details/53842058 参考了网上的一些教 ...

  3. Linux中把文件夹打成war包,SpringBoot中maven项目打成war包部署在liunx服务器上的方法...

    说明:Spring Boot由于内嵌了如Tomcat,Jetty和Undertow这样的容器,也就是说可以直接跑起来,用不着再像Spring项目还需要外置的Tomcat等容器来进行部署工作了,通过启动 ...

  4. scala语言编写的maven项目打jar包运行

    项目场景: scala语言编写的maven项目打jar包运行 问题描述 最近在做项目的时候需要把项目部署到docker上面运行,java.编写的maven项目打成jar包再定义入口函数之后就可以运行了 ...

  5. 通过插件自动将maven项目打成jar包的同时将当前项目依赖的第三方Jar包一起打包

    1.添加插件 <build><plugins><!-- 如果已经在Maven的全局配置中,配置了JDK编译的界别,这个插件可以省略 --><!-- <p ...

  6. maven项目添加jar包

    使用集成工具创建一个maven项目,如果需要添加开发包,只需去maven仓库找到对应的包,将配置信息加入pom.xml文件即可.这样,我们就再也不用到处寻找和下载jar包了. 用例:开发工具 STS ...

  7. IDEA中maven配置解决jar包下载报错,亲测好用

    折磨了我很久的世纪难题,在网上找了大堆方法都不能完美解决,最后东拼西凑,maven配置实现光速构建.我使用的idea版本是2021.2.3,JDK是1.8.0_201,maven版本是3.6.3. 因 ...

  8. Maven 项目查找 jar 包是由哪个配置引入的

    maven依赖结构图 1.项目查询所有的Maven查看JAR包的依赖关系 mvn dependency:tree 如查询junit.jar 是依赖谁导入进来的 这样就知道是被谁依赖而导入到项目的 其中 ...

  9. IDEA中maven如何将jar包导入本地的maven库

    第一步:将IKAnalyzer.jar包存放在一个文件夹中,比如mylib文件夹 第二步:建立一个IKAnalyzer.jar包相关的pom.xml文件,需要在pom.xml文件中定义其maven坐标 ...

最新文章

  1. 论COSPLAY / 谨以此文纪念我暂短的Cos生涯
  2. vue中style的scoped属性的设计方式
  3. nginx做透明代理
  4. .NET 开源配置组件 AgileConfig 初体验
  5. MyBatis-Plus_更新操作
  6. SilverLight Test
  7. java购物车商品排序_Java购物车
  8. Python+sklearn使用逻辑回归算法预测期末考试能否及格
  9. Getting Started with STM32 in Segger Embedded Studio
  10. java用for打印正方形_java.java
  11. python编程狮app_Python编程狮官方app下载_Python编程狮安卓app下载 v1.0.8 - 创意手游...
  12. js 调用摄像头拍照
  13. 服务器拒绝mac访问共享文件,Mac共享文件连接失败怎么办?Mac无法访问打开共享文件解决方法...
  14. 使用 ActiveReports 报表工具,动态创建报表模板
  15. yml转换html,properties转换yml格式
  16. win10专业版激活方法——亲测可行!!!
  17. 守望先锋游戏反外挂技术测评
  18. Python24中使用urllib时遇到IOError的正确打开方式
  19. 服务器413是什么状态,服务器异常代码413问题
  20. 180亿美元估值,快手用什么来支撑?

热门文章

  1. 大数据下Limit使用(MySQL)
  2. Oracle 触发器调用存储过程|转||待研究|
  3. SQL中 decode()函数简介
  4. Javascript学习笔记2——函数
  5. C#正则实现匹配一块代码段
  6. Codeforces Round #514 (Div. 2)题解
  7. nginx伪静态之try_files和rewrite讲解
  8. Java范例集锦(一)
  9. CSS3选择器 :read-only选择器 CSS3选择器 :read-write选择器
  10. spring-cloud-config安全问题