使用Maven打包的時候, 有時候需要指定啓動類, 可如下操作!
測試項目(結構如下):
代碼: com.xxx.MainClass.java
package com.xxx; public class MainClass { public static void main(String[] args) { System.out.println("The project is to use maven to package a Jar with mainclass !"); } }
打包的時候指定啓動類爲 com.xxx.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>com.xxx</groupId> <artifactId>maven-packaging</artifactId> <version>1.0-SNAPSHOT</version> <build> <!-- 打包後的名字 --> <finalName>MainClass</finalName> <plugins> <!-- 配置jdk版本爲1.8 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <target>1.8</target> <source>1.8</source> </configuration> </plugin> <!-- 配置啓動類 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.2.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.xxx.MainClass</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
執行 mvn clean package , 在target包下找到MainClass.jar文件
可直接使用命令 java -jar MainClass.jar 執行
方法二:
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>com.xxx</groupId> <artifactId>maven-packaging</artifactId> <version>1.0-SNAPSHOT</version> <build> <!-- 打包後的名字 --> <finalName>MainClass</finalName> <plugins> <!-- 配置jdk版本爲1.8 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <target>1.8</target> <source>1.8</source> </configuration> </plugin> </plugins> <!-- 配置啓動類 --> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>com.xxx.MainClass</mainClass> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> </manifest> </archive> <classesDirectory> </classesDirectory> </configuration> </plugin> </plugins> </pluginManagement> </build> </project>
執行 mvn clean package , 在target包下找到MainClass.jar文件
可直接使用命令 java -jar MainClass.jar 執行
兩種配置效果時一樣的 !!!!!