大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Maven運行JavaMain方法

Maven運行JavaMain方法

更新時間:2021-10-13 11:20:27 來源:動力節(jié)點 瀏覽1625次

1.概述

在這個簡短的教程中,我們將看到如何使用 Maven 從任何 Java 類運行任意main 方法。

2.exec-maven-plugin

假設(shè)我們有以下類:

public class Exec {
    private static final Logger LOGGER = LoggerFactory.getLogger(Exec.class);

    public static void main(String[] args) {
        LOGGER.info("Running the main method");
        if (args.length > 0) {
            LOGGER.info("List of arguments: {}", Arrays.toString(args));
        }
    }
}

我們想通過 Maven 從命令行執(zhí)行它的 main 方法。

為了做到這一點,我們可以使用 exec-maven-plugin。更具體地說,此插件的 exec:java 目標執(zhí)行提供的 Java 類,并將封閉項目的依賴項作為類路徑。

要執(zhí)行Exec類的 main 方法,我們必須將類的完全限定名稱傳遞給插件:

$ mvn compile exec:java -Dexec.mainClass="com.baeldung.main.Exec"
02:26:45.112 INFO com.baeldung.main.Exec - Running the main method

如上所示,我們使用 exec.mainClass 系統(tǒng)屬性來傳遞完全限定的類名。

此外,在運行 main 方法之前,我們必須確保類路徑已準備就緒。這就是我們在執(zhí)行 main 方法之前編譯源代碼的原因。

我們可以用普通的java 和 javac實現(xiàn)同樣的事情。 但是,當(dāng)我們使用相當(dāng)大的類路徑時,這可能會很麻煩。相反, 當(dāng)使用這個插件時,Maven 會自動處理填充類路徑。

3.傳遞參數(shù)

也可以將參數(shù)從命令行傳遞到 main 方法。為此,我們可以使用 exec.args 系統(tǒng)屬性:

$ mvn compile exec:java -Dexec.mainClass="com.baeldung.main.Exec" \
  -Dexec.args="First Second"
02:31:08.235 INFO com.baeldung.main.Exec - Running the main method
02:31:08.236 INFO com.baeldung.main.Exec - List of arguments: [First, Second]

如上所示,我們傳遞了一個以空格分隔的參數(shù)列表。此外,我們可以通過exec.arguments 系統(tǒng)屬性使用逗號分隔的參數(shù)列表:

$ mvn compile exec:java -Dexec.mainClass="com.baeldung.main.Exec" \ 
  -Dexec.arguments="Hello World,Bye"
02:32:25.616 INFO com.baeldung.main.Exec - Running the main method
02:32:25.618 INFO com.baeldung.main.Exec - List of arguments: [Hello World, Bye]

當(dāng)我們想在參數(shù)本身中使用分隔符(空格或逗號)時,這兩個選項非常有用。

4.自定義配置

我們還可以在pom.xml 中顯式聲明插件依賴項 。這樣,我們可以使用自定義和默認配置。

例如,我們可以在插件的配置中指定一個默認的主類:

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>3.0.0</version>
            <configuration>
                <mainClass>com.baeldung.main.Exec</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>

現(xiàn)在,如果我們不指定所需類的完全限定名稱,將使用com.baeldung.main.Exec :

$ mvn compile exec:java
02:33:14.197 INFO com.baeldung.main.Exec - Running the main method

但是,仍然可以通過顯式exec覆蓋此默認配置。mainClass 系統(tǒng)屬性。

此外,我們還可以在配置中指定默認程序參數(shù):

<configuration>
    <mainClass>com.baeldung.main.Exec</mainClass>
    <arguments>
        <argument>First</argument>
        <argument>Second</argument>
    </arguments>
</configuration>

這樣我們就不需要在命令行上傳遞這些參數(shù):

$ mvn clean compile exec:java
02:34:24.448 INFO com.baeldung.main.Exec - Running the main method
02:34:24.450 INFO com.baeldung.main.Exec - List of arguments: [First, Second]

 

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 免费中日高清无专码有限公司 | 国产欧美视频综合二区 | 天天操操操操操 | 日韩中文字幕在线亚洲一区 | 国产成人综合91香蕉 | 国产第一页福利 | 欧美夜夜骑 | 国产午夜精品福利 | 日本1区二区三区公司 | 国产精品k | 成人网在线视频 | 亚洲国产美女精品久久 | 日本在线一卡二卡毛片 | 日本免费在线一区 | 日韩中文字幕在线免费观看 | 久久在线免费观看 | 欧美大片国产在线永久播放 | 久草在线在线精品观看 | 国产综合在线播放 | 综合色久七七综合七七蜜芽 | 国产精品久久久久久爽爽爽 | 国产精品爱久久久久久久9999 | 4hu四虎永久网址 | 久久精品动漫99精品动漫 | 日韩精品一区二区三区中文3d | 美女毛片免费 | 亚洲一区天堂 | 成人亚州 | 色吧五月婷婷 | 亚洲精品国产成人 | www.伊人.com| 免费中日高清无专码有限公司 | 国产成人精品免费视 | 加勒比一本大道在线 | 九天玄帝诀免费完整观看 | 亚洲精品二三区伊人久久 | 久久免费99精品久久久久久 | 久久精品国产视频在热 | 久久久久免费 | 亚洲va精品中文字幕 | 老司机午夜视频在线观看 |