如何给Maven管理的普通Java项目指定默认启动类

news/2024/11/14 19:56:45/

Java -jar 命令启动项目时,会去读取META-INF/MANIFEST.MF中的Main-Class属性值。

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: ls
Created-By: Apache Maven 3.6.0
Build-Jdk: 1.8.0_361
Main-Class: polymorphism.Client

如何指定Main-Class值?(两种方式)

都是在pom文件中通过<mainClass>标签指定值。

第一种:

<build><plugins><plugin><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding><showDeprecation>true</showDeprecation></configuration><version>3.8.0</version></plugin><plugin><artifactId>maven-jar-plugin</artifactId><version>3.0.2</version><configuration><archive><manifest><mainClass>polymorphism.Client</mainClass></manifest></archive></configuration></plugin></plugins></build>

第二种:

    <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>2.3</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><transformers><transformerimplementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><!--指定main方法--><mainClass>polymorphism.Client</mainClass></transformer></transformers></configuration></execution></executions></plugin></plugins></build>

为什么指定后,就可以生成Main-Class属性了呢?

这两种方式分别是通过什么方式达到效果的呢?


http://www.ppmy.cn/news/433009.html

相关文章

马原第二章复习 1.实践和认识 80-109

实践 (一) 实践的本质 人类能动改造世界的客观物质活动 实践具有三个基本特征 客观实在性(体现在构成实践的诸多要素) 主观能动性(实践是一种有目的有计划的活动) 客观物质性 (二) 实践的基本结构 实践主体 实践客体 实践中介 辨析:实践客体不等于客观事物 客观事物只有…

异步IO API(Asynchronous I/O API)和RxJava结合实现异步读写文件的功能

文章目录 异步IO API是Java标准库中提供的,可以使用它来实现异步读写文件的功能。RxJava是一个响应式编程库,可以使用它来实现回调函数的功能。AsynchronousFileChannel类实现异步写入文件异步IO API和RxJava是两个不同的库,可以分别使用来实现异步IO和回调函数的功能。 异步…

【Docker实战】使用Docker部署Leantime项目管理系统

【Docker实战】使用Docker部署Leantime项目管理系统 一、Leantime 介绍1.1 Leantime简介1.2 Leantime特点二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本四、下载Leantime相关镜像五、…

rust切片

这里s的不可变引用借用给了wordIndex&#xff0c;而s.clear()又想用可变引用&#xff0c;所以报错。而第一个例子中返回的usize并没有返回不可变引用。

Matlab论文插图绘制模板第104期—带缺口的分组箱线图

在之前的文章中&#xff0c;分享了Matlab分组箱线图的绘制模板&#xff1a; 进一步&#xff0c;再来分享一下带缺口的分组箱线图的绘制模板。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数据代码』已上传资源群中&#xff0c;加群的朋友请自行下载。有需…

开源大型语言模型(llm)总结

大型语言模型&#xff08;LLM&#xff09;是人工智能领域中的一个重要研究方向&#xff0c;在ChatGPT之后&#xff0c;它经历了快速的发展。这些发展主要涉及以下几个方面&#xff1a; 模型规模的增长&#xff1a;LLM的规模越来越大&#xff0c;参数数量显著增加。这种扩展使得…

万物的算法日记|第五天

笔者自述&#xff1a; 一直有一个声音也一直能听到身边的大佬经常说&#xff0c;要把算法学习搞好&#xff0c;一定要重视平时的算法学习&#xff0c;虽然每天也在学算法&#xff0c;但是感觉自己一直在假装努力表面功夫骗了自己&#xff0c;没有规划好自己的算法学习和总结&am…

50 最佳实践-安全最佳实践-Libvirt鉴权

文章目录 50 最佳实践-安全最佳实践-Libvirt鉴权50.1 简介50.2 开启libvirt鉴权50.3 管理SASL 50 最佳实践-安全最佳实践-Libvirt鉴权 50.1 简介 用户使用libvirt远程调用功能时&#xff0c;如果不进行任何鉴权校验&#xff0c;所有连接到主机所在网络的第三方程序都可以通过…