如何给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属性了呢?

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


相关文章
|
9天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
35 17
|
2天前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
33 8
|
3天前
|
SQL Java 数据库连接
从理论到实践:Hibernate与JPA在Java项目中的实际应用
本文介绍了Java持久层框架Hibernate和JPA的基本概念及其在具体项目中的应用。通过一个在线书店系统的实例,展示了如何使用@Entity注解定义实体类、通过Spring Data JPA定义仓库接口、在服务层调用方法进行数据库操作,以及使用JPQL编写自定义查询和管理事务。这些技术不仅简化了数据库操作,还显著提升了开发效率。
12 3
|
4天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
33 4
|
5天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
13 2
|
5天前
|
前端开发 Java 数据库
如何实现一个项目,小白做项目-java
本教程涵盖了从数据库到AJAX的多个知识点,并详细介绍了项目实现过程,包括静态页面分析、数据库创建、项目结构搭建、JSP转换及各层代码编写。最后,通过通用分页和优化Servlet来提升代码质量。
17 1
|
9天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
13天前
|
存储 Java 编译器
java wrapper是什么类
【10月更文挑战第16天】
20 3
|
12天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
5天前
|
Java 持续交付 项目管理
使用Maven进行项目管理:提高Java Web开发的效率
Maven 是一款强大的项目管理和构建自动化工具,广泛应用于Java社区。它通过依赖管理、构建生命周期管理、插件机制和多模块项目支持等功能,简化了项目的构建过程,提高了开发效率。本文将介绍Maven的核心功能及其在Java Web开发中的应用。
20 0

推荐镜像

更多
下一篇
无影云桌面