您好,登錄后才能下訂單哦!
今天小編給大家分享一下Maven怎么運行Java的Main方法的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
使用Maven從任何Java類運行任意main方法。
假設我們有以下類:
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 會自動處理填充類路徑。
也可以將參數從命令行傳遞到 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]
當我們想在參數本身中使用分隔符(空格或逗號)時,這兩個選項非常有用。
我們還可以在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方法”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。