溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Maven打包時怎么指定啟動類

發(fā)布時間:2023-04-08 15:38:22 來源:億速云 閱讀:159 作者:iii 欄目:開發(fā)技術(shù)

這篇“Maven打包時怎么指定啟動類”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Maven打包時怎么指定啟動類”文章吧。

    Maven打包時指定啟動類

    使用Maven打包的時候, 有時候需要指定啟動類, 可如下操作!

    測試項目(結(jié)構(gòu)如下):

    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>

    執(zhí)行 mvn clean package , 在target包下找到MainClass.jar文件 

    可直接使用命令 java -jar MainClass.jar 執(zhí)行

    Maven打包時怎么指定啟動類

    方法二

    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>

    執(zhí)行 mvn clean package , 在target包下找到MainClass.jar文件 

    可直接使用命令 java -jar MainClass.jar 執(zhí)行

    Maven打包時怎么指定啟動類

    兩種配置效果時一樣的 !!!!!

    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>

    Maven打包時怎么指定啟動類

    定義一個java啟動類

    package com.example.demo;
     
    public class TestKey {
        public static void main(String[] args) {
            System.out.println("啟動了.............");
        }
    }

    以上就是關(guān)于“Maven打包時怎么指定啟動類”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI