Maven打包時如何指定啟動類
Maven打包時指定啟動類
使用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 執行
兩種配置效果時一樣的 !!!!!
maven打包以某個類為啟動類
配置信息如下:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>com.example.demo.TestKey</mainClass> <addClasspath>true</addClasspath> </manifest> </archive> </configuration> </plugin> </plugins> </build>
定義一個java啟動類
package com.example.demo; public class TestKey { public static void main(String[] args) { System.out.println("啟動瞭............."); } }
總結
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- maven-compiler-plugin版本指定方式
- Maven如何打入依賴中指定的部分jar包
- Java基礎之Maven詳解
- 使用maven如何將項目中的test代碼打包進jar中
- SpringBoot分離打Jar包的兩種配置方式