本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看 活动链接
前言
看到这个问题,其实穷尽脑汁,好像没想到什么场景会使用这个。小弟知识还不到家!!
不过,关注度还挺高,毕竟有专门解决方案,那么必然会有很好的场景等待!
我们将其记录下来,如果有一天,可以直接使用。
问题复现
问题比较简单:
采用Maven来构建一个简单的Java应用程序,想通过Maven的命令行,来完成对于Java应用程序Main方法的执行。
类似于:
mvn run-app com.example.MainClass
问题解决
解决这个问题的方案,其实蛮简单,就是采用Maven的插件,完成这个任务。
Maven提供一个插件,maven-exec-plugin 它可以承担这个任务,执行Main方法。
我们来了解下,实现方式。
-
首先保证自己的Jdk环境,这个就不多说了,因为既然写Java程序,JVM环境是必要的。
-
然后,修改pom.xml文件
<project>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>com.example.Main</mainClass>
<arguments>
<argument>argument1</argument>
</arguments>
</configuration>
</plugin>
</plugins>
</build>
</project>
<properties>
<exec.mainClass>类全路径名</exec.mainClass>
</properties>
- 执行命令
mvn clean compile exec:java
可以通过 -Dexec.args="xxx" 添加运行参数
如果实在不想添加插件,可以执行
mvn org.codehaus.mojo:exec-maven-plugin:1.5.0:java -Dexec.mainClass="com.example.Main" | grep -Ev '(^\[|Download\w+:)'
问题总结
其实技术是无止境的,不懂得永远在路上。保持持续学习,才是王道。
PS:尾部推广,欢迎小伙伴关注我的公众号。 公众号,长期更新原创、经典转载技术、架构知识