详解IDEA中MAVEN项目打JAR包的简单方法
时间:2019-04-11
本文章向大家介绍详解IDEA中MAVEN项目打JAR包的简单方法,主要包括详解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> <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>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- 你真的会玩SQL吗?透视转换的艺术
- 你真的会玩SQL吗?玩爆你的数据报表之存储过程编写(上)
- 你真的会玩SQL吗?实用函数方法汇总
- 你真的会玩SQL吗?冷落的Top和Apply
- 你真的会玩SQL吗?你所不知道的 数据聚合
- 你真的会玩SQL吗?简单的数据修改
- 将Error异常日志从普通日志中剥离
- 一步一步在Windows中使用MyCat负载均衡 下篇
- Android实现TCP断点上传,后台C#服务实现接收
- Android如何制作漂亮的自适布局的键盘
- 实用收藏Linux命令备忘
- 0基础搭建Hadoop大数据处理-环境
- 如何实现两台服务器间无密码的传输数据和操作
- 一步到位Linux中安装配置MySQL及补坑
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 【-Flutter绘制集录-】第一画: 随机对称点头像
- TorchScript使用的注意事项和常见错误
- Scoped 样式穿透
- 你不知道的this(1)
- PyTorch模型转TVM模型全流程记录
- 一次 Node.js http 连接无法复用的问题排查
- 基于UE4/Unity绘制地图基础元素-线(上篇)
- 编码、R 与 Windows (一)
- 【5分钟玩转Lighthouse】Python绘制图表
- Matt Dowle 演讲节选(二)
- 帝国CMS的sitemap.xml设置和生成
- 【推荐】搭建你的免费 R 云端服务器
- ShareX 对接tu.my图床实现截图和图片自动上传
- 【技巧】如何快速按照日期分组
- 为什么 ggplot2 不支持两个 y 轴?