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

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


相关文章
|
5天前
|
存储 安全 Java
Java——String类详解
String 是 Java 中的一个类,用于表示字符串,属于引用数据类型。字符串可以通过多种方式定义,如直接赋值、创建对象、传入 char 或 byte 类型数组。直接赋值会将字符串存储在串池中,复用相同的字符串以节省内存。String 类提供了丰富的方法,如比较(equals() 和 compareTo())、查找(charAt() 和 indexOf())、转换(valueOf() 和 format())、拆分(split())和截取(substring())。此外,还介绍了 StringBuilder 和 StringJoiner 类,前者用于高效拼接字符串,后者用于按指定格式拼接字符串
11 1
Java——String类详解
|
5天前
|
Java Apache Maven
Maven 项目文档
Maven 项目文档
|
1天前
|
Java 开发者
Java Character 类详解
Java中的`Character`类是`java.lang`包的一部分,用于将基本类型`char`封装为对象,并提供了丰富的静态方法来处理字符,如类型判断、大小写转换等。
|
1天前
|
Java Apache Maven
Maven 项目文档
Maven 项目文档
|
1天前
|
安全 Java
Java StringBuffer 和 StringBuilder 类详解
在 Java 中,`StringBuffer` 和 `StringBuilder` 用于操作可变字符串,支持拼接、插入、删除等功能。两者的主要区别在于线程安全性和性能:`StringBuffer` 线程安全但较慢,适用于多线程环境;`StringBuilder` 非线程安全但更快,适合单线程环境。选择合适的类取决于具体的应用场景和性能需求。通常,在不需要线程安全的情况下,推荐使用 `StringBuilder` 以获得更好的性能。
|
1天前
|
Java 索引
Java String 类详解
Java 中的 `String` 类用于表示不可变的字符序列,是 Java 标准库 `java.lang` 包的一部分。字符串对象一旦创建,其内容不可更改,修改会生成新对象。
|
4天前
|
Java Apache Maven
Maven 项目文档
Maven 项目文档
|
5天前
|
Java
Java Character 类详解
`Character` 类是 Java 中的一个封装类,位于 `java.lang` 包中,主要用于处理单个字符。它是一个最终类,提供了多种静态方法来检查和操作字符属性,如判断字符是否为字母、数字或空格,以及转换字符的大小写等。此外,`Character` 类还支持自动装箱和拆箱,简化了 `char` 和 `Character` 之间的转换。以下是一些示例代码,展示了如何使用 `Character` 类的方法来检查字符属性和执行字符转换。掌握 `Character` 类的用法有助于更高效地处理字符数据。
|
存储 Java Maven
Java环境下Maven安装与环境变量配置
Java环境下Maven安装与环境变量配置
1231 0
|
Java Maven Android开发