使用maven運(yùn)行Java Main的三種方法解析
maven使用exec插件運(yùn)行java main方法,以下是3種不同的操作方式。
一、從命令行運(yùn)行
1、運(yùn)行前先編譯代碼,exec:java不會(huì)自動(dòng)編譯代碼,你需要手動(dòng)執(zhí)行mvn compile來完成編譯。
mvn compile
2、編譯完成后,執(zhí)行exec運(yùn)行main方法。
不需要傳遞參數(shù):
mvn exec:java -Dexec.mainClass="com.vineetmanohar.module.Main"
需要傳遞參數(shù):
mvn exec:java -Dexec.mainClass="com.vineetmanohar.module.Main" -Dexec.args="arg0 arg1 arg2"
指定對(duì)classpath的運(yùn)行時(shí)依賴:
mvn exec:java -Dexec.mainClass="com.vineetmanohar.module.Main" -Dexec.classpathScope=runtime
二、在pom.xml中指定某個(gè)階段執(zhí)行
<build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.1.1</version> <executions> <execution> <phase>test</phase> <goals> <goal>java</goal> </goals> <configuration> <mainClass>com.vineetmanohar.module.CodeGenerator</mainClass> <arguments> <argument>arg0</argument> <argument>arg1</argument> </arguments> </configuration> </execution> </executions> </plugin> </plugins> </build>
將CodeGenerator.main()方法的執(zhí)行綁定到maven的 test 階段,通過下面的命令可以執(zhí)行main方法:
mvn test
三、在pom.xml中指定某個(gè)配置來執(zhí)行
<profiles> <profile> <id>code-generator</id> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.1.1</version> <executions> <execution> <phase>test</phase> <goals> <goal>java</goal> </goals> <configuration> <mainClass>com.vineetmanohar.module.CodeGenerator</mainClass> <arguments> <argument>arg0</argument> <argument>arg1</argument> </arguments> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles>
將2中的配置用<profile>標(biāo)簽包裹后就能通過指定該配置文件來執(zhí)行main方法,如下:
mvn test -Pcode-generator
注:通過以下命令可以獲取mvn exec的其他配置參數(shù)說明。
mvn exec:help -Ddetail=true -Dgoal=java
總結(jié)
以上就是本文關(guān)于使用maven運(yùn)行Java Main的三種操作方式解析的全部?jī)?nèi)容,如有不足之處,歡迎留言指出。感興趣的朋友可以繼續(xù)參閱:Java利用future及時(shí)獲取多線程運(yùn)行結(jié)果、淺談Java中static和非static的區(qū)別、Java多線程ForkJoinPool實(shí)例詳解等,希望對(duì)大家有所幫助。感謝朋友們對(duì)本站的支持!
相關(guān)文章
Java實(shí)現(xiàn)Flappy Bird游戲源碼
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)Flappy Bird游戲源碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12關(guān)于SpringBoot集成Lettuce連接Redis的方法和案例
這篇文章主要介紹了關(guān)于SpringBoot集成Lettuce連接Redis的方法和案例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04java實(shí)現(xiàn)隨機(jī)抽取獎(jiǎng)品工具類
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)隨機(jī)抽取獎(jiǎng)品工具類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05Java與SpringBoot對(duì)redis的使用方式
這篇文章主要介紹了Java與SpringBoot對(duì)redis的使用方式,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-08-08Java如何獲取@TableField,@TableName注解的值
這篇文章主要介紹了Java如何獲取@TableField,@TableName注解的值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01IDEA+JRebel實(shí)現(xiàn)全自動(dòng)熱部署的方法步驟
這篇文章主要介紹了IDEA+JRebel實(shí)現(xiàn)全自動(dòng)熱部署的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11springboot ApplicationContextInitializer的三種使用方法小結(jié)
這篇文章主要介紹了關(guān)于ApplicationContextInitializer的三種使用方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11