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

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

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>标签指定值。

第一种:

1. <build>
2. <plugins>
3. <plugin>
4. <artifactId>maven-compiler-plugin</artifactId>
5. <configuration>
6. <source>1.8</source>
7. <target>1.8</target>
8. <encoding>UTF-8</encoding>
9. <showDeprecation>true</showDeprecation>
10. </configuration>
11. <version>3.8.0</version>
12. </plugin>
13. 
14. <plugin>
15. <artifactId>maven-jar-plugin</artifactId>
16. <version>3.0.2</version>
17. <configuration>
18. <archive>
19. <manifest>
20. <mainClass>polymorphism.Client</mainClass>
21. </manifest>
22. </archive>
23. </configuration>
24. </plugin>
25. </plugins>
26. 
27. </build>

第二种:

1. <build>
2. <plugins>
3. <plugin>
4. <groupId>org.apache.maven.plugins</groupId>
5. <artifactId>maven-shade-plugin</artifactId>
6. <version>2.3</version>
7. <executions>
8. <execution>
9. <phase>package</phase>
10. <goals>
11. <goal>shade</goal>
12. </goals>
13. <configuration>
14. <transformers>
15. <transformer
16. implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
17. <!--指定main方法-->
18. <mainClass>polymorphism.Client</mainClass>
19. </transformer>
20. </transformers>
21. </configuration>
22. </execution>
23. </executions>
24. </plugin>
25. </plugins>
26. </build>

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

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


相关文章
|
6天前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
53 1
|
1月前
|
前端开发 Java API
2025 年 Java 全栈从环境搭建到项目上线实操全流程指南:Java 全栈最新实操指南(2025 版)
本指南涵盖2025年Java全栈开发核心技术,从JDK 21环境搭建、Spring Boot 3.3实战、React前端集成到Docker容器化部署,结合最新特性与实操流程,助力构建高效企业级应用。
416 1
|
30天前
|
安全 IDE Java
Java记录类型(Record):简化数据载体类
Java记录类型(Record):简化数据载体类
279 120
|
1月前
|
JavaScript Java 微服务
现代化 Java Web 在线商城项目技术方案与实战开发流程及核心功能实现详解
本项目基于Spring Boot 3与Vue 3构建现代化在线商城系统,采用微服务架构,整合Spring Cloud、Redis、MySQL等技术,涵盖用户认证、商品管理、购物车功能,并支持Docker容器化部署与Kubernetes编排。提供完整CI/CD流程,助力高效开发与扩展。
298 63
|
1天前
|
安全 Java 数据建模
Java记录类:简化数据载体的新选择
Java记录类:简化数据载体的新选择
|
1天前
|
安全 Java 开发者
Java记录类:简化数据载体的新方式
Java记录类:简化数据载体的新方式
|
4天前
|
IDE 安全 Java
Lombok 在企业级 Java 项目中的隐性成本:便利背后的取舍之道
Lombok虽能简化Java代码,但其“魔法”特性易破坏封装、影响可维护性,隐藏调试难题,且与JPA等框架存在兼容风险。企业级项目应优先考虑IDE生成、Java Records或MapStruct等更透明、稳健的替代方案,平衡开发效率与系统长期稳定性。
48 1
|
6天前
|
存储 小程序 Java
热门小程序源码合集:微信抖音小程序源码支持PHP/Java/uni-app完整项目实践指南
小程序已成为企业获客与开发者创业的重要载体。本文详解PHP、Java、uni-app三大技术栈在电商、工具、服务类小程序中的源码应用,提供从开发到部署的全流程指南,并分享选型避坑与商业化落地策略,助力开发者高效构建稳定可扩展项目。
|
28天前
|
缓存 安全 Java
Java反射机制:动态操作类与对象
Java反射机制是运行时动态操作类与对象的强大工具,支持获取类信息、动态创建实例、调用方法、访问字段等。它在框架开发、依赖注入、动态代理等方面有广泛应用,但也存在性能开销和安全风险。本文详解反射核心API、实战案例及性能优化策略,助你掌握Java动态编程精髓。
|
29天前
|
存储 安全 Java
Java集合框架(一):List接口及其实现类剖析
本文深入解析Java中List集合的实现原理,涵盖ArrayList的动态数组机制、LinkedList的链表结构、Vector与Stack的线程安全性及其不推荐使用的原因,对比了不同实现的性能与适用场景,帮助开发者根据实际需求选择合适的List实现。

推荐镜像

更多