亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Maven怎么運行Java的Main方法

發布時間:2022-09-28 11:15:58 來源:億速云 閱讀:247 作者:iii 欄目:web開發

今天小編給大家分享一下Maven怎么運行Java的Main方法的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

1.概述

使用Maven從任何Java類運行任意main方法。

2.exec-maven-plugin

假設我們有以下類:

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 從命令行執行它的 main 方法。

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

要執行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 系統屬性來傳遞完全限定的類名。

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

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

3.傳遞參數

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

$ 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]

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

$ 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]

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

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>

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

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

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

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

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

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

$ mvn clean compile exec:java02: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]

以上就是“Maven怎么運行Java的Main方法”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

扎鲁特旗| 元氏县| 响水县| 鄂尔多斯市| 且末县| 孝昌县| 新兴县| 遂平县| 衡东县| 宁阳县| 德兴市| 望都县| 通海县| 龙海市| 扬州市| 馆陶县| 大足县| 双鸭山市| 安宁市| 乌拉特前旗| 伊宁市| 通化市| 会宁县| 南漳县| 长葛市| 易门县| 泾阳县| 澄迈县| 孙吴县| 杭锦后旗| 无棣县| 土默特左旗| 承德市| 疏勒县| 和政县| 日喀则市| 钟山县| 永吉县| 云林县| 宜黄县| 威信县|